diff --git a/upptst/SvoValue/SvoValue.cpp b/upptst/SvoValue/SvoValue.cpp index 4982b78fc..83cf5bec0 100644 --- a/upptst/SvoValue/SvoValue.cpp +++ b/upptst/SvoValue/SvoValue.cpp @@ -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); diff --git a/upptst/SvoValue/SvoValue.h b/upptst/SvoValue/SvoValue.h index 8fa6af0bc..3a63e89f3 100644 --- a/upptst/SvoValue/SvoValue.h +++ b/upptst/SvoValue/SvoValue.h @@ -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(); + fn = ConfigFile(AsString(t)); + if(FileExists(fn)) { + LoadFromFile(vf, fn); + RDUMP(vf.To()); + ASSERT(vf.To() == x); + } + } Value v = x; RDUMP(v); ASSERT(isvoid ? v.IsVoid() : v.Is()); if(!isvoid) { + StoreToFile(v, fn); RDUMP(GetValueTypeNo()); ASSERT(v.GetType() == GetValueTypeNo()); + ASSERT(v.To() == x); } + if(!vf.IsVoid()) + ASSERT(vf == v); String h = StoreAsString(v); Value vv; LoadFromString(vv, h);