@ -50,8 +50,8 @@ namespace Magnum { namespace Trade { namespace Test { namespace {
struct SceneDataTest : TestSuite : : Tester {
struct SceneDataTest : TestSuite : : Tester {
explicit SceneDataTest ( ) ;
explicit SceneDataTest ( ) ;
void objectTypeSize ( ) ;
void objectTypeSizeAlignment ( ) ;
void objectTypeSizeInvalid ( ) ;
void objectTypeSizeAlignment Invalid ( ) ;
void debugObjectType ( ) ;
void debugObjectType ( ) ;
void customFieldName ( ) ;
void customFieldName ( ) ;
@ -59,8 +59,8 @@ struct SceneDataTest: TestSuite::Tester {
void customFieldNameNotCustom ( ) ;
void customFieldNameNotCustom ( ) ;
void debugFieldName ( ) ;
void debugFieldName ( ) ;
void fieldTypeSize ( ) ;
void fieldTypeSizeAlignment ( ) ;
void fieldTypeSizeInvalid ( ) ;
void fieldTypeSizeAlignment Invalid ( ) ;
void debugFieldType ( ) ;
void debugFieldType ( ) ;
void constructField ( ) ;
void constructField ( ) ;
@ -223,8 +223,8 @@ const struct {
# endif
# endif
SceneDataTest : : SceneDataTest ( ) {
SceneDataTest : : SceneDataTest ( ) {
addTests ( { & SceneDataTest : : objectTypeSize ,
addTests ( { & SceneDataTest : : objectTypeSizeAlignment ,
& SceneDataTest : : objectTypeSizeInvalid ,
& SceneDataTest : : objectTypeSizeAlignment Invalid ,
& SceneDataTest : : debugObjectType ,
& SceneDataTest : : debugObjectType ,
& SceneDataTest : : customFieldName ,
& SceneDataTest : : customFieldName ,
@ -232,8 +232,8 @@ SceneDataTest::SceneDataTest() {
& SceneDataTest : : customFieldNameNotCustom ,
& SceneDataTest : : customFieldNameNotCustom ,
& SceneDataTest : : debugFieldName ,
& SceneDataTest : : debugFieldName ,
& SceneDataTest : : fieldTypeSize ,
& SceneDataTest : : fieldTypeSizeAlignment ,
& SceneDataTest : : fieldTypeSizeInvalid ,
& SceneDataTest : : fieldTypeSizeAlignment Invalid ,
& SceneDataTest : : debugFieldType ,
& SceneDataTest : : debugFieldType ,
& SceneDataTest : : constructField ,
& SceneDataTest : : constructField ,
@ -427,14 +427,18 @@ SceneDataTest::SceneDataTest() {
using namespace Math : : Literals ;
using namespace Math : : Literals ;
void SceneDataTest : : objectTypeSize ( ) {
void SceneDataTest : : objectTypeSizeAlignment ( ) {
CORRADE_COMPARE ( sceneObjectTypeSize ( SceneObjectType : : UnsignedByte ) , 1 ) ;
CORRADE_COMPARE ( sceneObjectTypeSize ( SceneObjectType : : UnsignedByte ) , 1 ) ;
CORRADE_COMPARE ( sceneObjectTypeAlignment ( SceneObjectType : : UnsignedByte ) , 1 ) ;
CORRADE_COMPARE ( sceneObjectTypeSize ( SceneObjectType : : UnsignedShort ) , 2 ) ;
CORRADE_COMPARE ( sceneObjectTypeSize ( SceneObjectType : : UnsignedShort ) , 2 ) ;
CORRADE_COMPARE ( sceneObjectTypeAlignment ( SceneObjectType : : UnsignedShort ) , 2 ) ;
CORRADE_COMPARE ( sceneObjectTypeSize ( SceneObjectType : : UnsignedInt ) , 4 ) ;
CORRADE_COMPARE ( sceneObjectTypeSize ( SceneObjectType : : UnsignedInt ) , 4 ) ;
CORRADE_COMPARE ( sceneObjectTypeAlignment ( SceneObjectType : : UnsignedInt ) , 4 ) ;
CORRADE_COMPARE ( sceneObjectTypeSize ( SceneObjectType : : UnsignedLong ) , 8 ) ;
CORRADE_COMPARE ( sceneObjectTypeSize ( SceneObjectType : : UnsignedLong ) , 8 ) ;
CORRADE_COMPARE ( sceneObjectTypeAlignment ( SceneObjectType : : UnsignedLong ) , 8 ) ;
}
}
void SceneDataTest : : objectTypeSizeInvalid ( ) {
void SceneDataTest : : objectTypeSizeAlignment Invalid ( ) {
# ifdef CORRADE_NO_ASSERT
# ifdef CORRADE_NO_ASSERT
CORRADE_SKIP ( " CORRADE_NO_ASSERT defined, can't test assertions " ) ;
CORRADE_SKIP ( " CORRADE_NO_ASSERT defined, can't test assertions " ) ;
# endif
# endif
@ -443,11 +447,15 @@ void SceneDataTest::objectTypeSizeInvalid() {
Error redirectError { & out } ;
Error redirectError { & out } ;
sceneObjectTypeSize ( SceneObjectType { } ) ;
sceneObjectTypeSize ( SceneObjectType { } ) ;
sceneObjectTypeAlignment ( SceneObjectType { } ) ;
sceneObjectTypeSize ( SceneObjectType ( 0x73 ) ) ;
sceneObjectTypeSize ( SceneObjectType ( 0x73 ) ) ;
sceneObjectTypeAlignment ( SceneObjectType ( 0x73 ) ) ;
CORRADE_COMPARE ( out . str ( ) ,
CORRADE_COMPARE ( out . str ( ) ,
" Trade::sceneObjectTypeSize(): invalid type Trade::SceneObjectType(0x0) \n "
" Trade::sceneObjectTypeSize(): invalid type Trade::SceneObjectType(0x0) \n "
" Trade::sceneObjectTypeSize(): invalid type Trade::SceneObjectType(0x73) \n " ) ;
" Trade::sceneObjectTypeAlignment(): invalid type Trade::SceneObjectType(0x0) \n "
" Trade::sceneObjectTypeSize(): invalid type Trade::SceneObjectType(0x73) \n "
" Trade::sceneObjectTypeAlignment(): invalid type Trade::SceneObjectType(0x73) \n " ) ;
}
}
void SceneDataTest : : debugObjectType ( ) {
void SceneDataTest : : debugObjectType ( ) {
@ -506,7 +514,7 @@ void SceneDataTest::debugFieldName() {
CORRADE_COMPARE ( out . str ( ) , " Trade::SceneField::Transformation Trade::SceneField::Custom(73) Trade::SceneField(0xdeadda7) \n " ) ;
CORRADE_COMPARE ( out . str ( ) , " Trade::SceneField::Transformation Trade::SceneField::Custom(73) Trade::SceneField(0xdeadda7) \n " ) ;
}
}
void SceneDataTest : : fieldTypeSize ( ) {
void SceneDataTest : : fieldTypeSizeAlignment ( ) {
/* Test at least one of every size */
/* Test at least one of every size */
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Byte ) , sizeof ( Byte ) ) ;
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Byte ) , sizeof ( Byte ) ) ;
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Degh ) , sizeof ( Degh ) ) ;
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Degh ) , sizeof ( Degh ) ) ;
@ -526,9 +534,16 @@ void SceneDataTest::fieldTypeSize() {
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Matrix3x4d ) , sizeof ( Matrix3x4d ) ) ;
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Matrix3x4d ) , sizeof ( Matrix3x4d ) ) ;
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Matrix4x4d ) , sizeof ( Matrix4x4d ) ) ;
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Matrix4x4d ) , sizeof ( Matrix4x4d ) ) ;
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Pointer ) , sizeof ( const void * ) ) ;
CORRADE_COMPARE ( sceneFieldTypeSize ( SceneFieldType : : Pointer ) , sizeof ( const void * ) ) ;
/* Test at least one of every alignment */
CORRADE_COMPARE ( sceneFieldTypeAlignment ( SceneFieldType : : Vector3ub ) , alignof ( UnsignedByte ) ) ;
CORRADE_COMPARE ( sceneFieldTypeAlignment ( SceneFieldType : : Matrix3x3h ) , alignof ( Half ) ) ;
CORRADE_COMPARE ( sceneFieldTypeAlignment ( SceneFieldType : : Range3Di ) , alignof ( UnsignedInt ) ) ;
CORRADE_COMPARE ( sceneFieldTypeAlignment ( SceneFieldType : : DualComplexd ) , alignof ( Double ) ) ;
CORRADE_COMPARE ( sceneFieldTypeAlignment ( SceneFieldType : : Pointer ) , alignof ( const void * ) ) ;
}
}
void SceneDataTest : : fieldTypeSizeInvalid ( ) {
void SceneDataTest : : fieldTypeSizeAlignment Invalid ( ) {
# ifdef CORRADE_NO_ASSERT
# ifdef CORRADE_NO_ASSERT
CORRADE_SKIP ( " CORRADE_NO_ASSERT defined, can't test assertions " ) ;
CORRADE_SKIP ( " CORRADE_NO_ASSERT defined, can't test assertions " ) ;
# endif
# endif
@ -537,11 +552,15 @@ void SceneDataTest::fieldTypeSizeInvalid() {
Error redirectError { & out } ;
Error redirectError { & out } ;
sceneFieldTypeSize ( SceneFieldType { } ) ;
sceneFieldTypeSize ( SceneFieldType { } ) ;
sceneFieldTypeAlignment ( SceneFieldType { } ) ;
sceneFieldTypeSize ( SceneFieldType ( 0xdead ) ) ;
sceneFieldTypeSize ( SceneFieldType ( 0xdead ) ) ;
sceneFieldTypeAlignment ( SceneFieldType ( 0xdead ) ) ;
CORRADE_COMPARE ( out . str ( ) ,
CORRADE_COMPARE ( out . str ( ) ,
" Trade::sceneFieldTypeSize(): invalid type Trade::SceneFieldType(0x0) \n "
" Trade::sceneFieldTypeSize(): invalid type Trade::SceneFieldType(0x0) \n "
" Trade::sceneFieldTypeSize(): invalid type Trade::SceneFieldType(0xdead) \n " ) ;
" Trade::sceneFieldTypeAlignment(): invalid type Trade::SceneFieldType(0x0) \n "
" Trade::sceneFieldTypeSize(): invalid type Trade::SceneFieldType(0xdead) \n "
" Trade::sceneFieldTypeAlignment(): invalid type Trade::SceneFieldType(0xdead) \n " ) ;
}
}
void SceneDataTest : : debugFieldType ( ) {
void SceneDataTest : : debugFieldType ( ) {