Many tweaks, mostly to support the freakiness of doing Add/FindData() with
entry_refs and BMessages. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3297 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -35,6 +35,7 @@ struct TPointInitPolicy : public ArrayTypeBase<BPoint>
|
||||
inline static BPoint Zero() { return BPoint(0.0, 0.0); }
|
||||
inline static BPoint Test1() { return BPoint(10.0, 10.0); }
|
||||
inline static BPoint Test2() { return BPoint(20.0, 20.0); }
|
||||
inline static size_t SizeOf(const BPoint&) { return sizeof (BPoint); }
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
ArrayType array;
|
||||
@@ -48,7 +49,9 @@ struct TPointInitPolicy : public ArrayTypeBase<BPoint>
|
||||
struct TPointAssertPolicy
|
||||
{
|
||||
inline static BPoint Zero() { return BPoint(0.0, 0.0); }
|
||||
inline static BPoint Invalid() { return BPoint(0.0, 0.0);}
|
||||
inline static BPoint Invalid() { return BPoint(0.0, 0.0); }
|
||||
inline static bool Size(size_t size, BPoint& p)
|
||||
{ return size == sizeof (p); }
|
||||
};
|
||||
|
||||
typedef TMessageItemTest
|
||||
|
||||
@@ -35,6 +35,7 @@ struct TBRectInitPolicy : public ArrayTypeBase<BRect>
|
||||
inline static BRect Zero() { return BRect(0, 0, 0, 0); }
|
||||
inline static BRect Test1() { return BRect(1, 2, 3, 4); }
|
||||
inline static BRect Test2() { return BRect(5, 6, 7, 8); }
|
||||
inline static size_t SizeOf(const BRect&) { return sizeof (BRect); }
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
ArrayType array;
|
||||
@@ -49,6 +50,8 @@ struct TBRectAssertPolicy
|
||||
{
|
||||
inline static BRect Zero() { return BRect(0, 0, 0, 0); }
|
||||
inline static BRect Invalid() { return BRect(0, 0, -1, -1); }
|
||||
inline static bool Size(size_t size, BRect& r)
|
||||
{ return size == sizeof (r); }
|
||||
};
|
||||
|
||||
typedef TMessageItemTest
|
||||
|
||||
@@ -80,6 +80,7 @@ struct TBoolInitPolicy : public ArrayTypeBase<bool>
|
||||
inline static bool Zero() { return false; }
|
||||
inline static bool Test1() { return true; }
|
||||
inline static bool Test2() { return false; }
|
||||
inline static size_t SizeOf(const bool&) { return sizeof (bool); }
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
static bool array[] = { true, true, true };
|
||||
@@ -87,11 +88,18 @@ struct TBoolInitPolicy : public ArrayTypeBase<bool>
|
||||
}
|
||||
};
|
||||
|
||||
struct TBoolAssertPolicy
|
||||
{
|
||||
inline static bool Zero() { return false; }
|
||||
inline static bool Invalid() { return false;}
|
||||
};
|
||||
//struct TBoolAssertPolicy
|
||||
//{
|
||||
// inline static bool Zero() { return false; }
|
||||
// inline static bool Invalid() { return false;}
|
||||
//};
|
||||
typedef TMessageItemAssertPolicy
|
||||
<
|
||||
bool//,
|
||||
// false,
|
||||
// false
|
||||
>
|
||||
TBoolAssertPolicy;
|
||||
|
||||
typedef TMessageItemTest
|
||||
<
|
||||
|
||||
@@ -35,6 +35,7 @@ struct TDoubleInitPolicy : public ArrayTypeBase<double>
|
||||
inline static double Zero() { return 0; }
|
||||
inline static double Test1() { return 1.234; }
|
||||
inline static double Test2() { return 5.678; }
|
||||
inline static size_t SizeOf(const double&) { return sizeof (double); }
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
ArrayType array;
|
||||
@@ -48,7 +49,9 @@ struct TDoubleInitPolicy : public ArrayTypeBase<double>
|
||||
struct TDoubleAssertPolicy
|
||||
{
|
||||
inline static double Zero() { return 0; }
|
||||
inline static double Invalid() { return 0;}
|
||||
inline static double Invalid() { return 0; }
|
||||
inline static bool Size(size_t size, double& d)
|
||||
{ return size == sizeof (d); }
|
||||
};
|
||||
|
||||
typedef TMessageItemTest
|
||||
|
||||
@@ -35,6 +35,7 @@ struct TFloatInitPolicy : public ArrayTypeBase<float>
|
||||
inline static float Zero() { return 0; }
|
||||
inline static float Test1() { return 1.234; }
|
||||
inline static float Test2() { return 5.678; }
|
||||
inline static size_t SizeOf(const float&) { return sizeof (float); }
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
ArrayType array;
|
||||
@@ -48,7 +49,9 @@ struct TFloatInitPolicy : public ArrayTypeBase<float>
|
||||
struct TFloatAssertPolicy
|
||||
{
|
||||
inline static float Zero() { return 0; }
|
||||
inline static float Invalid() { return 0;}
|
||||
inline static float Invalid() { return 0; }
|
||||
inline static bool Size(size_t size, float& f)
|
||||
{ return size == sizeof (f); }
|
||||
};
|
||||
|
||||
typedef TMessageItemTest
|
||||
|
||||
@@ -35,6 +35,7 @@ struct TInt16InitPolicy : public ArrayTypeBase<int16>
|
||||
inline static int16 Zero() { return 0; }
|
||||
inline static int16 Test1() { return 1234; }
|
||||
inline static int16 Test2() { return 5678; }
|
||||
inline static size_t SizeOf(const int16&) { return sizeof (int16); }
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
ArrayType array;
|
||||
@@ -45,11 +46,11 @@ struct TInt16InitPolicy : public ArrayTypeBase<int16>
|
||||
}
|
||||
};
|
||||
|
||||
struct TInt16AssertPolicy
|
||||
{
|
||||
inline static int16 Zero() { return 0; }
|
||||
inline static int16 Invalid() { return 0;}
|
||||
};
|
||||
typedef TMessageItemAssertPolicy
|
||||
<
|
||||
int16
|
||||
>
|
||||
TInt16AssertPolicy;
|
||||
|
||||
typedef TMessageItemTest
|
||||
<
|
||||
|
||||
@@ -38,6 +38,7 @@ struct TInt32InitPolicy : public ArrayTypeBase<int32>
|
||||
inline static int32 Zero() { return 0; }
|
||||
inline static int32 Test1() { return 1234; }
|
||||
inline static int32 Test2() { return 5678; }
|
||||
inline static size_t SizeOf(const int32&) { return sizeof (int32); }
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
ArrayType array;
|
||||
@@ -48,11 +49,11 @@ struct TInt32InitPolicy : public ArrayTypeBase<int32>
|
||||
}
|
||||
};
|
||||
|
||||
struct TInt32AssertPolicy
|
||||
{
|
||||
inline static int32 Zero() { return 0; }
|
||||
inline static int32 Invalid() { return 0;}
|
||||
};
|
||||
typedef TMessageItemAssertPolicy
|
||||
<
|
||||
int32
|
||||
>
|
||||
TInt32AssertPolicy;
|
||||
|
||||
typedef TMessageItemTest
|
||||
<
|
||||
|
||||
@@ -35,6 +35,7 @@ struct TInt64InitPolicy : public ArrayTypeBase<int64>
|
||||
inline static int64 Zero() { return 0; }
|
||||
inline static int64 Test1() { return 1234; }
|
||||
inline static int64 Test2() { return 5678; }
|
||||
inline static size_t SizeOf(const int64&) { return sizeof (int64); }
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
ArrayType array;
|
||||
@@ -45,11 +46,11 @@ struct TInt64InitPolicy : public ArrayTypeBase<int64>
|
||||
}
|
||||
};
|
||||
|
||||
struct TInt64AssertPolicy
|
||||
{
|
||||
inline static int64 Zero() { return 0; }
|
||||
inline static int64 Invalid() { return 0;}
|
||||
};
|
||||
typedef TMessageItemAssertPolicy
|
||||
<
|
||||
int64
|
||||
>
|
||||
TInt64AssertPolicy;
|
||||
|
||||
typedef TMessageItemTest
|
||||
<
|
||||
|
||||
@@ -35,6 +35,7 @@ struct TInt8InitPolicy : public ArrayTypeBase<int8>
|
||||
inline static int8 Zero() { return 0; }
|
||||
inline static int8 Test1() { return 16; }
|
||||
inline static int8 Test2() { return 32; }
|
||||
inline static size_t SizeOf(const int8&) { return sizeof (int8); }
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
ArrayType array;
|
||||
@@ -45,11 +46,11 @@ struct TInt8InitPolicy : public ArrayTypeBase<int8>
|
||||
}
|
||||
};
|
||||
|
||||
struct TInt8AssertPolicy
|
||||
{
|
||||
inline static int8 Zero() { return 0; }
|
||||
inline static int8 Invalid() { return 0;}
|
||||
};
|
||||
typedef TMessageItemAssertPolicy
|
||||
<
|
||||
int8
|
||||
>
|
||||
TInt8AssertPolicy;
|
||||
|
||||
typedef TMessageItemTest
|
||||
<
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include "../common.h"
|
||||
|
||||
// Local Defines ---------------------------------------------------------------
|
||||
#define TEMPLATE_TEST_PARAMS <Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>
|
||||
#define TEMPLATE_TEST_PARAMS <Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>
|
||||
#define ADD_TEMPLATE_TEST(classbeingtested, suitename, classname, funcname) \
|
||||
(suitename)->addTest(new TestCaller<classname>(((string(#classbeingtested) + "::" + #funcname + "::" + typeid(Type).name()).c_str() ), \
|
||||
&classname::funcname));
|
||||
@@ -46,8 +46,12 @@ template
|
||||
class InitPolicy, // Type Zero()
|
||||
// Type Test1()
|
||||
// Type Test2()
|
||||
// vector<Type> Array()
|
||||
class AssertPolicy // Type Zero()
|
||||
// size_t SizeOf(const Type&)
|
||||
// ArrayType Array()
|
||||
// typedef XXX ArrayType
|
||||
class AssertPolicy, // Type Zero()
|
||||
// Type Invalid()
|
||||
class ComparePolicy // bool Compare(const Type& lhs, const Type& rhs)
|
||||
>
|
||||
class TMessageItemTest;
|
||||
|
||||
@@ -68,7 +72,11 @@ template
|
||||
status_t (BMessage::*FindFunc)(const char*, int32, Type*) const,
|
||||
Type (BMessage::*QuickFindFunc)(const char*, int32) const,
|
||||
bool (BMessage::*HasFunc)(const char*, int32) const,
|
||||
status_t (BMessage::*ReplaceFunc)(const char*, int32, Type)
|
||||
status_t (BMessage::*ReplaceFunc)(const char*, int32, Type),
|
||||
status_t (BMessage::*AddDataFunc)(const char*, type_code, const void*,
|
||||
ssize_t, bool, int32) = &BMessage::AddData,
|
||||
status_t (BMessage::*FindDataFunc)(const char*, type_code, int32,
|
||||
const void**, ssize_t*) const = &BMessage::FindData
|
||||
>
|
||||
struct TMessageItemFuncPolicy
|
||||
{
|
||||
@@ -76,6 +84,11 @@ struct TMessageItemFuncPolicy
|
||||
{
|
||||
return (msg.*AddFunc)(name, val);
|
||||
}
|
||||
static status_t AddData(BMessage& msg, const char* name, type_code type,
|
||||
Type* val, ssize_t size)
|
||||
{
|
||||
return (msg.*AddDataFunc)(name, type, (const void*)val, size);
|
||||
}
|
||||
static status_t Find(BMessage& msg, const char* name, int32 index, Type* val)
|
||||
{
|
||||
return (msg.*FindFunc)(name, index, val);
|
||||
@@ -88,10 +101,31 @@ struct TMessageItemFuncPolicy
|
||||
{
|
||||
return (msg.*HasFunc)(name, index);
|
||||
}
|
||||
static status_t Replace(BMessage& msg, const char* name, int32 index, Type val)
|
||||
static status_t Replace(BMessage& msg, const char* name, int32 index, Type& val)
|
||||
{
|
||||
return (msg.*ReplaceFunc)(name, index, val);
|
||||
}
|
||||
static status_t FindData(BMessage& msg, const char* name, type_code type,
|
||||
int32 index, const void** data, ssize_t* size)
|
||||
{
|
||||
return (msg.*FindDataFunc)(name, type, index, data, size);
|
||||
}
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
template<class T, T zero = T(), T invalid = T()>
|
||||
struct TMessageItemAssertPolicy
|
||||
{
|
||||
inline static T Zero() { return zero; }
|
||||
inline static T Invalid() { return invalid; }
|
||||
inline static bool Size(size_t size, T& t)
|
||||
{ return size == sizeof (t); }
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
template<class T>
|
||||
struct TMessageItemComparePolicy
|
||||
{
|
||||
inline static bool Compare(const T& lhs, const T& rhs)
|
||||
{ return lhs == rhs; }
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
template
|
||||
@@ -103,13 +137,18 @@ template
|
||||
// Type QuickFind(BMessage&, const char*, int32)
|
||||
// bool Has(BMessage&, const char*, int32)
|
||||
// status_t Replace(BMessage&, const char*, int32, Type)
|
||||
// status_t FindData(BMessage&, const char*, type_code, int32, const void**, ssize_t*)
|
||||
class InitPolicy, // Type Zero()
|
||||
// Type Test1()
|
||||
// Type Test2()
|
||||
// size_t SizeOf(const Type&)
|
||||
// ArrayType Array()
|
||||
// typedef XXX ArrayType
|
||||
class AssertPolicy // Type Zero()
|
||||
class AssertPolicy, // Type Zero()
|
||||
// Type Invalid()
|
||||
// bool Size(size_t, T&)
|
||||
class ComparePolicy // bool Compare(const Type& lhs, const Type& rhs)
|
||||
= TMessageItemComparePolicy<Type>
|
||||
>
|
||||
class TMessageItemTest : public TestCase
|
||||
{
|
||||
@@ -139,35 +178,40 @@ template
|
||||
type_code TypeCode,
|
||||
class FuncPolicy,
|
||||
class InitPolicy,
|
||||
class AssertPolicy
|
||||
class AssertPolicy,
|
||||
class ComparePolicy
|
||||
>
|
||||
void
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>::
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>::
|
||||
MessageItemTest1()
|
||||
{
|
||||
BMessage msg;
|
||||
Type out = InitPolicy::Zero();
|
||||
CPPUNIT_ASSERT(FuncPolicy::Find(msg, "item", 0, &out) == B_NAME_NOT_FOUND);
|
||||
CPPUNIT_ASSERT(out == AssertPolicy::Invalid());
|
||||
CPPUNIT_ASSERT(FuncPolicy::QuickFind(msg, "item", 0) == AssertPolicy::Invalid());
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(out, AssertPolicy::Invalid()));
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(FuncPolicy::QuickFind(msg, "item", 0),
|
||||
AssertPolicy::Invalid()));
|
||||
CPPUNIT_ASSERT(!FuncPolicy::Has(msg, "item", 0));
|
||||
const void* ptr = &out;
|
||||
ssize_t size;
|
||||
CPPUNIT_ASSERT(msg.FindData("item", TypeCode, &ptr, &size) ==
|
||||
CPPUNIT_ASSERT(FuncPolicy::FindData(msg, "item", TypeCode, 0, &ptr, &size) ==
|
||||
B_NAME_NOT_FOUND);
|
||||
CPPUNIT_ASSERT(ptr == NULL);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// R5 segfaults on the find data portion of this test for entry_refs
|
||||
// TODO: test R5 for entry_ref & BMessage
|
||||
template
|
||||
<
|
||||
class Type,
|
||||
type_code TypeCode,
|
||||
class FuncPolicy,
|
||||
class InitPolicy,
|
||||
class AssertPolicy
|
||||
class AssertPolicy,
|
||||
class ComparePolicy
|
||||
>
|
||||
void
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>::
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>::
|
||||
MessageItemTest2()
|
||||
{
|
||||
BMessage msg;
|
||||
@@ -175,27 +219,30 @@ MessageItemTest2()
|
||||
Type out = InitPolicy::Zero();
|
||||
CPPUNIT_ASSERT(FuncPolicy::Add(msg, "item", in) == B_OK);
|
||||
CPPUNIT_ASSERT(FuncPolicy::Has(msg, "item", 0));
|
||||
CPPUNIT_ASSERT(FuncPolicy::QuickFind(msg, "item", 0) == in);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(FuncPolicy::QuickFind(msg, "item", 0), in));
|
||||
CPPUNIT_ASSERT(FuncPolicy::Find(msg, "item", 0, &out) == B_OK);
|
||||
CPPUNIT_ASSERT(out == in);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(out, in));
|
||||
Type* pout = NULL;
|
||||
ssize_t size;
|
||||
status_t err = msg.FindData("item", TypeCode, (const void**)&pout, &size);
|
||||
status_t err = FuncPolicy::FindData(msg, "item", TypeCode, 0,
|
||||
(const void**)&pout, &size);
|
||||
CPPUNIT_ASSERT(err == B_OK);
|
||||
CPPUNIT_ASSERT(*pout == in);
|
||||
CPPUNIT_ASSERT(size == sizeof (Type));
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(*pout, in));
|
||||
CPPUNIT_ASSERT(AssertPolicy::Size(size, *pout));
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// TODO: test R5 for entry_ref & BMessage
|
||||
template
|
||||
<
|
||||
class Type,
|
||||
type_code TypeCode,
|
||||
class FuncPolicy,
|
||||
class InitPolicy,
|
||||
class AssertPolicy
|
||||
class AssertPolicy,
|
||||
class ComparePolicy
|
||||
>
|
||||
void
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>::
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>::
|
||||
MessageItemTest3()
|
||||
{
|
||||
BMessage msg;
|
||||
@@ -205,16 +252,16 @@ MessageItemTest3()
|
||||
CPPUNIT_ASSERT(FuncPolicy::Add(msg, "item", in) == B_OK);
|
||||
CPPUNIT_ASSERT(FuncPolicy::Replace(msg, "item", 0, in2) == B_OK);
|
||||
CPPUNIT_ASSERT(FuncPolicy::Has(msg, "item", 0));
|
||||
CPPUNIT_ASSERT(FuncPolicy::QuickFind(msg, "item", 0) == in2);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(FuncPolicy::QuickFind(msg, "item", 0), in2));
|
||||
CPPUNIT_ASSERT(FuncPolicy::Find(msg, "item", 0, &out) == B_OK);
|
||||
CPPUNIT_ASSERT(out == in2);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(out, in2));
|
||||
out = InitPolicy::Zero();
|
||||
Type* pout;
|
||||
ssize_t size;
|
||||
CPPUNIT_ASSERT(msg.FindData("item", TypeCode, (const void**)&pout,
|
||||
&size) == B_OK);
|
||||
CPPUNIT_ASSERT(*pout == in2);
|
||||
CPPUNIT_ASSERT(size == sizeof (Type));
|
||||
CPPUNIT_ASSERT(FuncPolicy::FindData(msg, "item", TypeCode, 0,
|
||||
(const void**)&pout, &size) == B_OK);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(*pout, in2));
|
||||
CPPUNIT_ASSERT(AssertPolicy::Size(size, *pout));
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
template
|
||||
@@ -223,35 +270,39 @@ template
|
||||
type_code TypeCode,
|
||||
class FuncPolicy,
|
||||
class InitPolicy,
|
||||
class AssertPolicy
|
||||
class AssertPolicy,
|
||||
class ComparePolicy
|
||||
>
|
||||
void
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>::
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>::
|
||||
MessageItemTest4()
|
||||
{
|
||||
BMessage msg;
|
||||
Type out = InitPolicy::Zero();
|
||||
CPPUNIT_ASSERT(FuncPolicy::Find(msg, "item", 1, &out) == B_NAME_NOT_FOUND);
|
||||
CPPUNIT_ASSERT(out == AssertPolicy::Invalid());
|
||||
CPPUNIT_ASSERT(FuncPolicy::QuickFind(msg, "item", 1) == AssertPolicy::Invalid());
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(out, AssertPolicy::Invalid()));
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(FuncPolicy::QuickFind(msg, "item", 1),
|
||||
AssertPolicy::Invalid()));
|
||||
CPPUNIT_ASSERT(!FuncPolicy::Has(msg, "item", 1));
|
||||
const void* ptr = &out;
|
||||
ssize_t size;
|
||||
CPPUNIT_ASSERT(msg.FindData("item", TypeCode, 1, &ptr, &size) ==
|
||||
CPPUNIT_ASSERT(FuncPolicy::FindData(msg, "item", TypeCode, 1, &ptr, &size) ==
|
||||
B_NAME_NOT_FOUND);
|
||||
CPPUNIT_ASSERT(ptr == NULL);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// TODO: test R5 for entry_ref & BMessage
|
||||
template
|
||||
<
|
||||
class Type,
|
||||
type_code TypeCode,
|
||||
class FuncPolicy,
|
||||
class InitPolicy,
|
||||
class AssertPolicy
|
||||
class AssertPolicy,
|
||||
class ComparePolicy
|
||||
>
|
||||
void
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>::
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>::
|
||||
MessageItemTest5()
|
||||
{
|
||||
BMessage msg;
|
||||
@@ -268,26 +319,29 @@ MessageItemTest5()
|
||||
for (int32 i = 0; i < InitPolicy::Size(in); ++i)
|
||||
{
|
||||
CPPUNIT_ASSERT(FuncPolicy::Has(msg, "item", i));
|
||||
CPPUNIT_ASSERT(FuncPolicy::QuickFind(msg, "item", i) == in[i]);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(FuncPolicy::QuickFind(msg, "item", i),
|
||||
in[i]));
|
||||
CPPUNIT_ASSERT(FuncPolicy::Find(msg, "item", i, &out) == B_OK);
|
||||
CPPUNIT_ASSERT(out == in[i]);
|
||||
CPPUNIT_ASSERT(msg.FindData("item", TypeCode, i,
|
||||
(const void**)&pout, &size) == B_OK);
|
||||
CPPUNIT_ASSERT(*pout == in[i]);
|
||||
CPPUNIT_ASSERT(size == sizeof (Type));
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(out, in[i]));
|
||||
CPPUNIT_ASSERT(FuncPolicy::FindData(msg, "item", TypeCode, i,
|
||||
(const void**)&pout, &size) == B_OK);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(*pout, in[i]));
|
||||
CPPUNIT_ASSERT(AssertPolicy::Size(size, *pout));
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// TODO: test R5 for entry_ref & BMessage
|
||||
template
|
||||
<
|
||||
class Type,
|
||||
type_code TypeCode,
|
||||
class FuncPolicy,
|
||||
class InitPolicy,
|
||||
class AssertPolicy
|
||||
class AssertPolicy,
|
||||
class ComparePolicy
|
||||
>
|
||||
void
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>::
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>::
|
||||
MessageItemTest6()
|
||||
{
|
||||
BMessage msg;
|
||||
@@ -303,45 +357,49 @@ MessageItemTest6()
|
||||
|
||||
CPPUNIT_ASSERT(FuncPolicy::Replace(msg, "item", rIndex, in2) == B_OK);
|
||||
CPPUNIT_ASSERT(FuncPolicy::Has(msg, "item", rIndex));
|
||||
CPPUNIT_ASSERT(FuncPolicy::QuickFind(msg, "item", rIndex) == in2);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(FuncPolicy::QuickFind(msg, "item", rIndex),
|
||||
in2));
|
||||
CPPUNIT_ASSERT(FuncPolicy::Find(msg, "item", rIndex, &out) == B_OK);
|
||||
CPPUNIT_ASSERT(out == in2);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(out, in2));
|
||||
out = InitPolicy::Zero();
|
||||
Type* pout;
|
||||
ssize_t size;
|
||||
CPPUNIT_ASSERT(msg.FindData("item", TypeCode, rIndex,
|
||||
(const void**)&pout, &size) == B_OK);
|
||||
CPPUNIT_ASSERT(*pout == in2);
|
||||
CPPUNIT_ASSERT(size == sizeof (Type));
|
||||
CPPUNIT_ASSERT(FuncPolicy::FindData(msg, "item", TypeCode, rIndex,
|
||||
(const void**)&pout, &size) == B_OK);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(*pout, in2));
|
||||
CPPUNIT_ASSERT(AssertPolicy::Size(size, *pout));
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
// TODO: test R5 for entry_ref & BMessage
|
||||
template
|
||||
<
|
||||
class Type,
|
||||
type_code TypeCode,
|
||||
class FuncPolicy,
|
||||
class InitPolicy,
|
||||
class AssertPolicy
|
||||
class AssertPolicy,
|
||||
class ComparePolicy
|
||||
>
|
||||
void
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>::
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>::
|
||||
MessageItemTest7()
|
||||
{
|
||||
BMessage msg;
|
||||
Type in = InitPolicy::Test1();
|
||||
Type out = InitPolicy::Zero();
|
||||
CPPUNIT_ASSERT(msg.AddData("item", TypeCode, (const void*)&in,
|
||||
sizeof (Type)) == B_OK);
|
||||
CPPUNIT_ASSERT(FuncPolicy::AddData(msg, "item", TypeCode, &in,
|
||||
InitPolicy::SizeOf(in)) == B_OK);
|
||||
CPPUNIT_ASSERT(FuncPolicy::Has(msg, "item", 0));
|
||||
CPPUNIT_ASSERT(FuncPolicy::QuickFind(msg, "item", 0) == in);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(FuncPolicy::QuickFind(msg, "item", 0),
|
||||
in));
|
||||
CPPUNIT_ASSERT(FuncPolicy::Find(msg, "item", 0, &out) == B_OK);
|
||||
CPPUNIT_ASSERT(out == in);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(out, in));
|
||||
Type* pout = NULL;
|
||||
ssize_t size;
|
||||
CPPUNIT_ASSERT(msg.FindData("item", TypeCode, (const void**)&pout,
|
||||
&size) == B_OK);
|
||||
CPPUNIT_ASSERT(*pout == in);
|
||||
CPPUNIT_ASSERT(size == sizeof (Type));
|
||||
CPPUNIT_ASSERT(FuncPolicy::FindData(msg, "item", TypeCode, 0,
|
||||
(const void**)&pout, &size) == B_OK);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(*pout, in));
|
||||
CPPUNIT_ASSERT(AssertPolicy::Size(size, *pout));
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
template
|
||||
@@ -350,10 +408,11 @@ template
|
||||
type_code TypeCode,
|
||||
class FuncPolicy,
|
||||
class InitPolicy,
|
||||
class AssertPolicy
|
||||
class AssertPolicy,
|
||||
class ComparePolicy
|
||||
>
|
||||
void
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>::
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>::
|
||||
MessageItemTest8()
|
||||
{
|
||||
BMessage msg;
|
||||
@@ -364,20 +423,21 @@ MessageItemTest8()
|
||||
|
||||
for (int32 i = 0; i < InitPolicy::Size(in); ++i)
|
||||
{
|
||||
CPPUNIT_ASSERT(msg.AddData("item", TypeCode,
|
||||
(const void*)&in[i], sizeof (Type)) == B_OK);
|
||||
CPPUNIT_ASSERT(FuncPolicy::AddData(msg, "item", TypeCode,
|
||||
&in[i], InitPolicy::SizeOf(in[i])) == B_OK);
|
||||
}
|
||||
|
||||
for (int32 i = 0; i < InitPolicy::Size(in); ++i)
|
||||
{
|
||||
CPPUNIT_ASSERT(FuncPolicy::Has(msg, "item", i));
|
||||
CPPUNIT_ASSERT(FuncPolicy::QuickFind(msg, "item", i) == in[i]);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(FuncPolicy::QuickFind(msg, "item", i),
|
||||
in[i]));
|
||||
CPPUNIT_ASSERT(FuncPolicy::Find(msg, "item", i, &out) == B_OK);
|
||||
CPPUNIT_ASSERT(out == in[i]);
|
||||
CPPUNIT_ASSERT(msg.FindData("item", TypeCode, i,
|
||||
(const void**)&pout, &size) == B_OK);
|
||||
CPPUNIT_ASSERT(*pout == in[i]);
|
||||
CPPUNIT_ASSERT(size == sizeof (Type));
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(out, in[i]));
|
||||
CPPUNIT_ASSERT(FuncPolicy::FindData(msg, "item", TypeCode, i,
|
||||
(const void**)&pout, &size) == B_OK);
|
||||
CPPUNIT_ASSERT(ComparePolicy::Compare(*pout, in[i]));
|
||||
CPPUNIT_ASSERT(AssertPolicy::Size(size, *pout));
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -387,10 +447,11 @@ template
|
||||
type_code TypeCode,
|
||||
class FuncPolicy,
|
||||
class InitPolicy,
|
||||
class AssertPolicy
|
||||
class AssertPolicy,
|
||||
class ComparePolicy
|
||||
>
|
||||
TestSuite*
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy>::
|
||||
TMessageItemTest<Type, TypeCode, FuncPolicy, InitPolicy, AssertPolicy, ComparePolicy>::
|
||||
Suite()
|
||||
{
|
||||
TestSuite* suite = new TestSuite("BMessage::Add/Find/Replace/HasRect()");
|
||||
|
||||
@@ -0,0 +1,225 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// MessageMessageItemTest.h
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#ifndef MESSAGEMESSAGEITEMTEST_H
|
||||
#define MESSAGEMESSAGEITEMTEST_H
|
||||
|
||||
// Standard Includes -----------------------------------------------------------
|
||||
|
||||
// System Includes -------------------------------------------------------------
|
||||
#include <Debug.h>
|
||||
|
||||
// Project Includes ------------------------------------------------------------
|
||||
|
||||
// Local Includes --------------------------------------------------------------
|
||||
#include "MessageItemTest.h"
|
||||
|
||||
// Local Defines ---------------------------------------------------------------
|
||||
|
||||
// Globals ---------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
struct TMessageFuncPolicy
|
||||
{
|
||||
static status_t Add(BMessage& msg, const char* name, BMessage& val);
|
||||
static status_t AddData(BMessage& msg, const char* name, type_code type,
|
||||
BMessage* data, ssize_t size);
|
||||
static status_t Find(BMessage& msg, const char* name, int32 index,
|
||||
BMessage* val);
|
||||
static BMessage QuickFind(BMessage& msg, const char* name, int32 index);
|
||||
static bool Has(BMessage& msg, const char* name, int32 index);
|
||||
static status_t Replace(BMessage& msg, const char* name, int32 index,
|
||||
BMessage& val);
|
||||
static status_t FindData(BMessage& msg, const char* name, type_code type,
|
||||
int32 index, const void** data, ssize_t* size);
|
||||
|
||||
private:
|
||||
static BMessage sMsg;
|
||||
};
|
||||
BMessage TMessageFuncPolicy::sMsg;
|
||||
//------------------------------------------------------------------------------
|
||||
status_t TMessageFuncPolicy::Add(BMessage& msg, const char* name,
|
||||
BMessage& val)
|
||||
{
|
||||
return msg.AddMessage(name, &val);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
status_t TMessageFuncPolicy::AddData(BMessage& msg, const char* name,
|
||||
type_code type, BMessage* data,
|
||||
ssize_t size)
|
||||
{
|
||||
char* buf = new char[size];
|
||||
status_t err = data->Flatten(buf, size);
|
||||
if (!err)
|
||||
{
|
||||
err = msg.AddData(name, type, buf, size, false);
|
||||
}
|
||||
delete[] buf;
|
||||
return err;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
inline status_t TMessageFuncPolicy::Find(BMessage& msg, const char* name,
|
||||
int32 index, BMessage* val)
|
||||
{
|
||||
return msg.FindMessage(name, index, val);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
BMessage TMessageFuncPolicy::QuickFind(BMessage& msg, const char* name,
|
||||
int32 index)
|
||||
{
|
||||
BMessage val;
|
||||
msg.FindMessage(name, index, &val);
|
||||
return val;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
inline bool TMessageFuncPolicy::Has(BMessage& msg, const char* name,
|
||||
int32 index)
|
||||
{
|
||||
return msg.HasMessage(name, index);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
inline status_t TMessageFuncPolicy::Replace(BMessage& msg, const char* name,
|
||||
int32 index, BMessage& val)
|
||||
{
|
||||
return msg.ReplaceMessage(name, index, &val);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
inline status_t TMessageFuncPolicy::FindData(BMessage& msg, const char* name,
|
||||
type_code type, int32 index,
|
||||
const void** data, ssize_t* size)
|
||||
{
|
||||
*data = NULL;
|
||||
char* ptr;
|
||||
status_t err = msg.FindData(name, type, index, (const void**)&ptr, size);
|
||||
if (!err)
|
||||
{
|
||||
err = sMsg.Unflatten(ptr);
|
||||
if (!err)
|
||||
{
|
||||
*(BMessage**)data = &sMsg;
|
||||
}
|
||||
}
|
||||
return err;
|
||||
// return (msg.*FindDataFunc)(name, type, index, data, size);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
template<>
|
||||
struct ArrayTypeBase<BMessage>
|
||||
{
|
||||
class ArrayType
|
||||
{
|
||||
public:
|
||||
ArrayType() : array(NULL), size(0) {;}
|
||||
ArrayType(const ArrayType& rhs) : array(NULL), size(0)
|
||||
{ *this = rhs; }
|
||||
ArrayType(BMessage* data, uint32 len) : array(NULL), size(0)
|
||||
{ Assign(data, len); }
|
||||
~ArrayType() { if (array) delete[] array; }
|
||||
|
||||
ArrayType& operator=(const ArrayType& rhs)
|
||||
{
|
||||
if (this != &rhs)
|
||||
Assign(rhs.array, rhs.size);
|
||||
return *this;
|
||||
};
|
||||
|
||||
uint32 Size() { return size; }
|
||||
BMessage& operator[](int index)
|
||||
{
|
||||
// We're just gonna let a segfault happen
|
||||
return array[index];
|
||||
}
|
||||
|
||||
private:
|
||||
void Assign(BMessage* data, uint32 len)
|
||||
{
|
||||
size = len;
|
||||
|
||||
if (array)
|
||||
delete[] array;
|
||||
array = new BMessage[Size()];
|
||||
for (uint32 i = 0; i < Size(); ++i)
|
||||
array[i] = data[i];
|
||||
}
|
||||
BMessage* array;
|
||||
uint32 size;
|
||||
};
|
||||
|
||||
typedef uint32 SizeType;
|
||||
static SizeType Size(ArrayType& array) { return array.Size(); }
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
struct TMessageInitPolicy : public ArrayTypeBase<BMessage>
|
||||
{
|
||||
inline static BMessage Zero() { return BMessage(); }
|
||||
static BMessage Test1()
|
||||
{
|
||||
BMessage msg('1234');
|
||||
msg.AddInt32("int32", 1234);
|
||||
return msg;
|
||||
}
|
||||
static BMessage Test2()
|
||||
{
|
||||
BMessage msg('5678');
|
||||
msg.AddString("string", "5678");
|
||||
return msg;
|
||||
}
|
||||
static size_t SizeOf(const BMessage& data)
|
||||
{
|
||||
return data.FlattenedSize();
|
||||
}
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
BMessage array[3];
|
||||
array[0] = Zero();
|
||||
array[1] = Test1();
|
||||
array[2] = Test2();
|
||||
return ArrayType(array, 3);
|
||||
}
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
struct TMessageAssertPolicy
|
||||
{
|
||||
inline static BMessage Zero() { return BMessage(); }
|
||||
inline static BMessage Invalid() { return BMessage(); }
|
||||
static bool Size(size_t size, BMessage& msg)
|
||||
;//{ return size == msg.FlattenedSize(); }
|
||||
};
|
||||
bool TMessageAssertPolicy::Size(size_t size, BMessage& msg)
|
||||
{
|
||||
ssize_t msgSize = msg.FlattenedSize();
|
||||
return size == msgSize;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
template<>
|
||||
struct TMessageItemComparePolicy<BMessage>
|
||||
{
|
||||
inline static bool Compare(const BMessage& lhs, const BMessage& rhs)
|
||||
{ return lhs.what == rhs.what; }
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
typedef TMessageItemTest
|
||||
<
|
||||
BMessage,
|
||||
B_MESSAGE_TYPE,
|
||||
TMessageFuncPolicy,
|
||||
TMessageInitPolicy,
|
||||
TMessageAssertPolicy
|
||||
>
|
||||
TMessageMessageItemTest;
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#endif // MESSAGEMESSAGEITEMTEST_H
|
||||
|
||||
/*
|
||||
* $Log $
|
||||
*
|
||||
* $Id $
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
// System Includes -------------------------------------------------------------
|
||||
#include <Entry.h>
|
||||
#include <Path.h>
|
||||
|
||||
// Project Includes ------------------------------------------------------------
|
||||
|
||||
@@ -25,31 +26,91 @@ struct TRefFuncPolicy
|
||||
{
|
||||
return msg.AddRef(name, &val);
|
||||
}
|
||||
static status_t AddData(BMessage& msg, const char* name, type_code type,
|
||||
entry_ref* data, ssize_t size);
|
||||
static status_t Find(BMessage& msg, const char* name, int32 index,
|
||||
entry_ref* val)
|
||||
{
|
||||
return msg.FindRef(name, index, val);
|
||||
}
|
||||
static entry_ref QuickFind(BMessage& msg, const char* name, int32 index)
|
||||
{
|
||||
// TODO: make cooler
|
||||
// There must be some 1337 template voodoo way of making the inclusion
|
||||
// of this function conditional. In the meantime, we offer this
|
||||
// cheesy hack
|
||||
entry_ref ref;
|
||||
msg.FindRef(name, index, &ref);
|
||||
return ref;
|
||||
}
|
||||
static entry_ref QuickFind(BMessage& msg, const char* name, int32 index);
|
||||
static bool Has(BMessage& msg, const char* name, int32 index)
|
||||
{
|
||||
return msg.HasRef(name, index);
|
||||
}
|
||||
static status_t Replace(BMessage& msg, const char* name, int32 index,
|
||||
entry_ref val)
|
||||
entry_ref& val)
|
||||
{
|
||||
return msg.ReplaceRef(name, index, &val);
|
||||
}
|
||||
static status_t FindData(BMessage& msg, const char* name, type_code type,
|
||||
int32 index, const void** data, ssize_t* size);
|
||||
|
||||
private:
|
||||
static entry_ref sRef;
|
||||
};
|
||||
status_t TRefFuncPolicy::AddData(BMessage& msg, const char* name, type_code type,
|
||||
entry_ref* data, ssize_t size)
|
||||
{
|
||||
BPath Path(data);
|
||||
status_t err = Path.InitCheck();
|
||||
char* buf = NULL;
|
||||
// if (!err)
|
||||
{
|
||||
buf = new char[size];
|
||||
err = Path.Flatten(buf, size);
|
||||
}
|
||||
|
||||
if (!err)
|
||||
{
|
||||
err = msg.AddData(name, type, buf, size, false);
|
||||
}
|
||||
delete[] buf;
|
||||
return err;
|
||||
}
|
||||
|
||||
entry_ref TRefFuncPolicy::QuickFind(BMessage &msg, const char *name, int32 index)
|
||||
{
|
||||
// TODO: make cooler
|
||||
// There must be some 1337 template voodoo way of making the inclusion
|
||||
// of this function conditional. In the meantime, we offer this
|
||||
// cheesy hack
|
||||
entry_ref ref;
|
||||
msg.FindRef(name, index, &ref);
|
||||
return ref;
|
||||
}
|
||||
|
||||
status_t TRefFuncPolicy::FindData(BMessage& msg, const char* name,
|
||||
type_code type, int32 index,
|
||||
const void** data, ssize_t* size)
|
||||
{
|
||||
*data = NULL;
|
||||
char* ptr;
|
||||
status_t err = msg.FindData(name, type, index, (const void**)&ptr, size);
|
||||
if (!err)
|
||||
{
|
||||
BPath Path;
|
||||
err = Path.Unflatten(type, ptr, *size);
|
||||
if (!err)
|
||||
{
|
||||
if (Path.Path())
|
||||
{
|
||||
err = get_ref_for_path(Path.Path(), &sRef);
|
||||
if (!err)
|
||||
{
|
||||
*(entry_ref**)data = &sRef;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sRef = entry_ref();
|
||||
*(entry_ref**)data = &sRef;
|
||||
}
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
entry_ref TRefFuncPolicy::sRef;
|
||||
//------------------------------------------------------------------------------
|
||||
struct TRefInitPolicy : public ArrayTypeBase<entry_ref>
|
||||
{
|
||||
@@ -66,6 +127,11 @@ struct TRefInitPolicy : public ArrayTypeBase<entry_ref>
|
||||
get_ref_for_path("/boot/develop/headers/be/Be.h", &ref);
|
||||
return ref;
|
||||
}
|
||||
static size_t SizeOf(const entry_ref& data)
|
||||
{
|
||||
BPath Path(&data);
|
||||
return Path.FlattenedSize();
|
||||
}
|
||||
inline static ArrayType Array()
|
||||
{
|
||||
ArrayType array;
|
||||
@@ -80,6 +146,11 @@ struct TRefAssertPolicy
|
||||
{
|
||||
inline static entry_ref Zero() { return TRefInitPolicy::Zero(); }
|
||||
inline static entry_ref Invalid() { return TRefInitPolicy::Zero();}
|
||||
// TODO: fix
|
||||
static bool Size(size_t size, entry_ref& ref)
|
||||
{
|
||||
return size == TRefInitPolicy::SizeOf(ref);
|
||||
}
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
typedef TMessageItemTest
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "../common.h"
|
||||
#include "MessageConstructTest.h"
|
||||
#include "MessageOpAssignTest.h"
|
||||
#include "MessageEasyFindTest.h"
|
||||
#include "MessageBoolItemTest.h"
|
||||
#include "MessageInt8ItemTest.h"
|
||||
#include "MessageInt16ItemTest.h"
|
||||
@@ -10,10 +11,12 @@
|
||||
#include "MessageInt64ItemTest.h"
|
||||
#include "MessageBRectItemTest.h"
|
||||
#include "MessageBPointItemTest.h"
|
||||
#include "MessageEasyFindTest.h"
|
||||
#include "MessageFloatItemTest.h"
|
||||
#include "MessageDoubleItemTest.h"
|
||||
#include "MessageMessageItemTest.h"
|
||||
//#ifdef TEST_OBOS
|
||||
#include "MessageRefItemTest.h"
|
||||
//#endif
|
||||
|
||||
Test* MessageTestSuite()
|
||||
{
|
||||
@@ -21,6 +24,7 @@ Test* MessageTestSuite()
|
||||
|
||||
tests->addTest(TMessageConstructTest::Suite());
|
||||
tests->addTest(TMessageOpAssignTest::Suite());
|
||||
tests->addTest(TMessageEasyFindTest::Suite());
|
||||
tests->addTest(TMessageBoolItemTest::Suite());
|
||||
tests->addTest(TMessageInt8ItemTest::Suite());
|
||||
tests->addTest(TMessageInt16ItemTest::Suite());
|
||||
@@ -28,10 +32,12 @@ Test* MessageTestSuite()
|
||||
tests->addTest(TMessageInt64ItemTest::Suite());
|
||||
tests->addTest(TMessageBRectItemTest::Suite());
|
||||
tests->addTest(TMessageBPointItemTest::Suite());
|
||||
tests->addTest(TMessageEasyFindTest::Suite());
|
||||
tests->addTest(TMessageFloatItemTest::Suite());
|
||||
tests->addTest(TMessageDoubleItemTest::Suite());
|
||||
tests->addTest(TMessageMessageItemTest::Suite());
|
||||
//#ifdef TEST_OBOS
|
||||
tests->addTest(TMessageRefItemTest::Suite());
|
||||
//#endif
|
||||
|
||||
return tests;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user