.developing svo_value

git-svn-id: svn://ultimatepp.org/upp/trunk@4379 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2012-01-09 15:45:54 +00:00
parent 28ef65938d
commit 0bbd5db7c7
2 changed files with 21 additions and 1 deletions

View file

@ -40,7 +40,12 @@ CONSOLE_APP_MAIN
CheckType(Sizef(20, 20), false, true);
CheckType(Rectf(0, 0, 123, 123), false, true);
CheckType(Blue(), false, true);
CheckType(Uuid::Create(), false, true);
Uuid uuid;
uuid.a = 11234;
uuid.b = 321;
uuid.c = 1111;
uuid.d = 19999;
CheckType(uuid, false, true);
v = ErrorValue("error");
CheckType(v, true);

View file

@ -51,13 +51,28 @@ void CheckType(const T& x, bool isvoid = false, bool checkhash = false)
{
RLOG("---------------------------");
RLOG("CheckType " << typeid(T).name());
String fn;
Value vf;
if(!isvoid) {
int t = GetValueTypeNo<T>();
fn = ConfigFile(AsString(t));
if(FileExists(fn)) {
LoadFromFile(vf, fn);
RDUMP(vf.To<T>());
ASSERT(vf.To<T>() == x);
}
}
Value v = x;
RDUMP(v);
ASSERT(isvoid ? v.IsVoid() : v.Is<T>());
if(!isvoid) {
StoreToFile(v, fn);
RDUMP(GetValueTypeNo<T>());
ASSERT(v.GetType() == GetValueTypeNo<T>());
ASSERT(v.To<T>() == x);
}
if(!vf.IsVoid())
ASSERT(vf == v);
String h = StoreAsString(v);
Value vv;
LoadFromString(vv, h);