/* $Id: PropertyFlattenTest.cpp 1218 2002-09-28 00:19:49Z shatty $ This file implements the flatten test for the Haiku BPropertyInfo code. This class tests the following usecases: - Fixed Size - Type Code - Allows Type Code - Flattened Size - Flatten */ #include "PropertyFlattenTest.h" #include #include /* * Method: PropertyFlattenTest::PropertyFlattenTest() * Descr: This is the constructor for this class. */ PropertyFlattenTest::PropertyFlattenTest(std::string name) : PropertyTestcase(name) { } /* * Method: PropertyFlattenTest::~PropertyFlattenTest() * Descr: This is the destructor for this class. */ PropertyFlattenTest::~PropertyFlattenTest() { } /* * Method: PropertyFlattenTest::TestProperty() * Descr: This member function performs this test. */ void PropertyFlattenTest::TestProperty( BPropertyInfo *propTest, const property_info *prop_list, const value_info *value_list, int32 prop_count, int32 value_count, ssize_t flat_size, const char *lflat_data, const char *bflat_data) { char buffer[768]; assert(!propTest->IsFixedSize()); assert(propTest->TypeCode() == B_PROPERTY_INFO_TYPE); assert(propTest->AllowsTypeCode(B_PROPERTY_INFO_TYPE)); assert(!propTest->AllowsTypeCode(B_TIME_TYPE)); assert(propTest->FlattenedSize() == flat_size); assert(propTest->Flatten(buffer, sizeof(buffer)/ sizeof(buffer[0])) == B_OK); if (B_HOST_IS_BENDIAN) { assert(memcmp(buffer, bflat_data, propTest->FlattenedSize()) == 0); } else { assert(memcmp(buffer, lflat_data, propTest->FlattenedSize()) == 0); } } /* * Method: PropertyFlattenTest::suite() * Descr: This static member function returns a test caller for performing * all combinations of "PropertyFlattenTest". */ Test *PropertyFlattenTest::suite(void) { typedef CppUnit::TestCaller PropertyFlattenTestCaller; return(new PropertyFlattenTestCaller("BPropertyInfo::Flatten Test", &PropertyFlattenTest::PerformTest)); }