diff options
-rw-r--r-- | test/common/pack.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/common/pack.h b/test/common/pack.h new file mode 100644 index 0000000000..a46a2a98b8 --- /dev/null +++ b/test/common/pack.h @@ -0,0 +1,36 @@ +#include <cxxtest/TestSuite.h> + +#include "common/stdafx.h" +#include "common/scummsys.h" + +#include <common/pack-start.h> // START STRUCT PACKING + +struct TestStruct { + uint32 x; + byte y; + uint16 z; + uint32 a; + byte b; +}; + +#include <common/pack-end.h> // END STRUCT PACKING + +#define OFFS(type,item) (int)(&((type*)0)->type::item) + +class PackTestSuite : public CxxTest::TestSuite +{ + public: + void test_packing( void ) + { + TS_ASSERT_EQUALS( sizeof(TestStruct), 4+1+2+4+1 ); + } + + void test_offsets( void ) + { + TS_ASSERT_EQUALS( OFFS(TestStruct, x), 0 ); + TS_ASSERT_EQUALS( OFFS(TestStruct, y), 4 ); + TS_ASSERT_EQUALS( OFFS(TestStruct, z), 5 ); + TS_ASSERT_EQUALS( OFFS(TestStruct, a), 7 ); + TS_ASSERT_EQUALS( OFFS(TestStruct, b), 11 ); + } +}; |