Browse Source

{scene,image}converter: split implementation and executable tests.

They're each a totally different beast and putting them into the same
test file doesn't really make sense:

 - We want to link certain plugins statically on static builds to test
   certain code paths in the implementation. However this is
   counter-productive for the executable tests because there we are
   checking for plugin presence from the test with the assumption that
   the executable and the test have the exact same set of plugins
   available (or linked statically).
 - The executable tests are implemented on Unix only at the moment,
   thus it's wasteful to try to build it on any other platforms. Having
   it in a separate file makes it much easier to deal with.
pull/595/head
Vladimír Vondruš 4 years ago
parent
commit
7067ed91c8
  1. 142
      src/Magnum/SceneTools/Test/CMakeLists.txt
  2. 1231
      src/Magnum/SceneTools/Test/SceneConverterImplementationTest.cpp
  3. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-animations.txt
  4. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-cameras.txt
  5. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-images.txt
  6. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-lights.txt
  7. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-materials.txt
  8. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-meshes-bounds.txt
  9. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-meshes.txt
  10. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-objects.txt
  11. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-references.txt
  12. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-scenes-objects.txt
  13. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-scenes.txt
  14. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-skins.txt
  15. 0
      src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-textures.txt
  16. 1213
      src/Magnum/SceneTools/Test/SceneConverterTest.cpp
  17. 6
      src/Magnum/Trade/Test/CMakeLists.txt
  18. 22
      src/Magnum/Trade/Test/ImageConverterImplementationTest.cpp
  19. 0
      src/Magnum/Trade/Test/ImageConverterImplementationTestFiles/info.txt

142
src/Magnum/SceneTools/Test/CMakeLists.txt

@ -52,72 +52,80 @@ corrade_add_test(SceneToolsConvertToSingleFun___Test ConvertToSingleFunctionObje
corrade_add_test(SceneToolsFlattenMeshHierarchyTest FlattenMeshHierarchyTest.cpp LIBRARIES MagnumSceneToolsTestLib) corrade_add_test(SceneToolsFlattenMeshHierarchyTest FlattenMeshHierarchyTest.cpp LIBRARIES MagnumSceneToolsTestLib)
corrade_add_test(SceneToolsOrderClusterParentsTest OrderClusterParentsTest.cpp LIBRARIES MagnumSceneToolsTestLib) corrade_add_test(SceneToolsOrderClusterParentsTest OrderClusterParentsTest.cpp LIBRARIES MagnumSceneToolsTestLib)
corrade_add_test(SceneToolsSceneConverterTest SceneConverterTest.cpp corrade_add_test(SceneToolsSceneConverterImple___Test SceneConverterImplementationTest.cpp
LIBRARIES LIBRARIES MagnumSceneTools
MagnumSceneTools
# Link the same static plugins as for the magnum-sceneconverter
# executable so plugin existence checks are consistent between the two
${MAGNUM_SCENECONVERTER_STATIC_PLUGINS}
FILES FILES
SceneConverterTestFiles/blue4x4.png SceneConverterImplementationTestFiles/info-animations.txt
# magnum-imageconverter --layers blue4x4.png --array blue4x4x1.ktx2 -c writerName= SceneConverterImplementationTestFiles/info-cameras.txt
SceneConverterTestFiles/blue4x4x1.ktx2 SceneConverterImplementationTestFiles/info-images.txt
SceneConverterTestFiles/broken-image-2d.gltf SceneConverterImplementationTestFiles/info-lights.txt
SceneConverterTestFiles/broken-image-3d.gltf SceneConverterImplementationTestFiles/info-materials.txt
SceneConverterTestFiles/broken-mesh.obj SceneConverterImplementationTestFiles/info-meshes-bounds.txt
SceneConverterTestFiles/broken-scene.gltf SceneConverterImplementationTestFiles/info-meshes.txt
SceneConverterTestFiles/dxt1.dds SceneConverterImplementationTestFiles/info-objects.txt
SceneConverterTestFiles/empty.gltf SceneConverterImplementationTestFiles/info-references.txt
SceneConverterTestFiles/image-dds.gltf SceneConverterImplementationTestFiles/info-scenes-objects.txt
SceneConverterTestFiles/images-2d.gltf SceneConverterImplementationTestFiles/info-scenes.txt
SceneConverterTestFiles/images-2d-1x1.bin SceneConverterImplementationTestFiles/info-skins.txt
SceneConverterTestFiles/images-2d-1x1.gltf SceneConverterImplementationTestFiles/info-textures.txt)
SceneConverterTestFiles/images-3d.gltf target_include_directories(SceneToolsSceneConverterImple___Test PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
SceneConverterTestFiles/images-3d-1x1x1.bin
SceneConverterTestFiles/images-3d-1x1x1.gltf # Executable testing is implemented on Unix platforms only at the moment
SceneConverterTestFiles/info-data.txt if(CORRADE_TARGET_UNIX AND NOT CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT)
SceneConverterTestFiles/info-data-ignored-output.txt corrade_add_test(SceneToolsSceneConverterTest SceneConverterTest.cpp
SceneConverterTestFiles/info-animations.txt LIBRARIES
SceneConverterTestFiles/info-cameras.txt MagnumSceneTools
SceneConverterTestFiles/info-images.txt # Link the same static plugins as for the magnum-sceneconverter
SceneConverterTestFiles/info-lights.txt # executable so plugin existence checks are consistent between the two
SceneConverterTestFiles/info-materials.txt ${MAGNUM_SCENECONVERTER_STATIC_PLUGINS}
SceneConverterTestFiles/info-meshes-bounds.txt FILES
SceneConverterTestFiles/info-meshes.txt SceneConverterTestFiles/blue4x4.png
SceneConverterTestFiles/info-objects.txt # magnum-imageconverter --layers blue4x4.png --array blue4x4x1.ktx2 -c writerName=
SceneConverterTestFiles/info-references.txt SceneConverterTestFiles/blue4x4x1.ktx2
SceneConverterTestFiles/info-scenes-objects.txt SceneConverterTestFiles/broken-image-2d.gltf
SceneConverterTestFiles/info-scenes.txt SceneConverterTestFiles/broken-image-3d.gltf
SceneConverterTestFiles/info-skins.txt SceneConverterTestFiles/broken-mesh.obj
SceneConverterTestFiles/info-textures.txt SceneConverterTestFiles/broken-scene.gltf
SceneConverterTestFiles/point.obj SceneConverterTestFiles/dxt1.dds
SceneConverterTestFiles/quad-duplicates-fuzzy.obj SceneConverterTestFiles/empty.gltf
SceneConverterTestFiles/quad-duplicates.obj SceneConverterTestFiles/image-dds.gltf
SceneConverterTestFiles/quad-duplicates.ply SceneConverterTestFiles/images-2d.gltf
SceneConverterTestFiles/quad-name-custom-attributes-duplicates.bin SceneConverterTestFiles/images-2d-1x1.bin
SceneConverterTestFiles/quad-name-custom-attributes-duplicates.gltf SceneConverterTestFiles/images-2d-1x1.gltf
SceneConverterTestFiles/quad-name-custom-attributes.bin SceneConverterTestFiles/images-3d.gltf
SceneConverterTestFiles/quad-name-custom-attributes.gltf SceneConverterTestFiles/images-3d-1x1x1.bin
SceneConverterTestFiles/quad-normals-texcoords.obj SceneConverterTestFiles/images-3d-1x1x1.gltf
SceneConverterTestFiles/quad-strip.bin SceneConverterTestFiles/info-data.txt
SceneConverterTestFiles/quad-strip.gltf SceneConverterTestFiles/info-data-ignored-output.txt
SceneConverterTestFiles/quad.bin SceneConverterTestFiles/point.obj
SceneConverterTestFiles/quad.gltf SceneConverterTestFiles/quad-duplicates-fuzzy.obj
SceneConverterTestFiles/quad.obj SceneConverterTestFiles/quad-duplicates.obj
SceneConverterTestFiles/quad.ply SceneConverterTestFiles/quad-duplicates.ply
SceneConverterTestFiles/red2x2.png SceneConverterTestFiles/quad-name-custom-attributes-duplicates.bin
# magnum-imageconverter --layers red2x2.png --array red2x2x1.ktx2 -c writerName= SceneConverterTestFiles/quad-name-custom-attributes-duplicates.gltf
SceneConverterTestFiles/red2x2x1.ktx2 SceneConverterTestFiles/quad-name-custom-attributes.bin
SceneConverterTestFiles/two-quads-duplicates-fuzzy.bin SceneConverterTestFiles/quad-name-custom-attributes.gltf
SceneConverterTestFiles/two-quads-duplicates-fuzzy.gltf SceneConverterTestFiles/quad-normals-texcoords.obj
SceneConverterTestFiles/two-quads-duplicates.bin SceneConverterTestFiles/quad-strip.bin
SceneConverterTestFiles/two-quads-duplicates.gltf SceneConverterTestFiles/quad-strip.gltf
SceneConverterTestFiles/two-quads.bin SceneConverterTestFiles/quad.bin
SceneConverterTestFiles/two-quads.gltf SceneConverterTestFiles/quad.gltf
SceneConverterTestFiles/two-triangles-transformed.bin SceneConverterTestFiles/quad.obj
SceneConverterTestFiles/two-triangles-transformed.gltf SceneConverterTestFiles/quad.ply
SceneConverterTestFiles/two-triangles.obj) SceneConverterTestFiles/red2x2.png
target_include_directories(SceneToolsSceneConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) # magnum-imageconverter --layers red2x2.png --array red2x2x1.ktx2 -c writerName=
if(MAGNUM_WITH_SCENECONVERTER AND CORRADE_TARGET_UNIX) SceneConverterTestFiles/red2x2x1.ktx2
add_dependencies(SceneToolsSceneConverterTest magnum-sceneconverter) SceneConverterTestFiles/two-quads-duplicates-fuzzy.bin
SceneConverterTestFiles/two-quads-duplicates-fuzzy.gltf
SceneConverterTestFiles/two-quads-duplicates.bin
SceneConverterTestFiles/two-quads-duplicates.gltf
SceneConverterTestFiles/two-quads.bin
SceneConverterTestFiles/two-quads.gltf
SceneConverterTestFiles/two-triangles-transformed.bin
SceneConverterTestFiles/two-triangles-transformed.gltf
SceneConverterTestFiles/two-triangles.obj)
target_include_directories(SceneToolsSceneConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(MAGNUM_WITH_SCENECONVERTER)
add_dependencies(SceneToolsSceneConverterTest magnum-sceneconverter)
endif()
endif() endif()

1231
src/Magnum/SceneTools/Test/SceneConverterImplementationTest.cpp

File diff suppressed because it is too large Load Diff

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-animations.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-animations.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-cameras.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-cameras.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-images.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-images.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-lights.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-lights.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-materials.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-materials.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-meshes-bounds.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-meshes-bounds.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-meshes.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-meshes.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-objects.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-objects.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-references.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-references.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-scenes-objects.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-scenes-objects.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-scenes.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-scenes.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-skins.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-skins.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-textures.txt → src/Magnum/SceneTools/Test/SceneConverterImplementationTestFiles/info-textures.txt

1213
src/Magnum/SceneTools/Test/SceneConverterTest.cpp

File diff suppressed because it is too large Load Diff

6
src/Magnum/Trade/Test/CMakeLists.txt

@ -55,11 +55,11 @@ corrade_add_test(TradeCameraDataTest CameraDataTest.cpp LIBRARIES MagnumTradeTes
corrade_add_test(TradeDataTest DataTest.cpp LIBRARIES MagnumTrade) corrade_add_test(TradeDataTest DataTest.cpp LIBRARIES MagnumTrade)
corrade_add_test(TradeFlatMaterialDataTest FlatMaterialDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradeFlatMaterialDataTest FlatMaterialDataTest.cpp LIBRARIES MagnumTradeTestLib)
corrade_add_test(TradeImageConverterTest ImageConverterTest.cpp corrade_add_test(TradeImageConverterImplementa___Test ImageConverterImplementationTest.cpp
LIBRARIES MagnumTrade LIBRARIES MagnumTrade
FILES FILES
ImageConverterTestFiles/info.txt) ImageConverterImplementationTestFiles/info.txt)
target_include_directories(TradeImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(TradeImageConverterImplementa___Test PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
corrade_add_test(TradeImageDataTest ImageDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradeImageDataTest ImageDataTest.cpp LIBRARIES MagnumTradeTestLib)
corrade_add_test(TradeLightDataTest LightDataTest.cpp LIBRARIES MagnumTradeTestLib) corrade_add_test(TradeLightDataTest LightDataTest.cpp LIBRARIES MagnumTradeTestLib)

22
src/Magnum/Trade/Test/ImageConverterTest.cpp → src/Magnum/Trade/Test/ImageConverterImplementationTest.cpp

@ -36,19 +36,19 @@
namespace Magnum { namespace Trade { namespace Test { namespace { namespace Magnum { namespace Trade { namespace Test { namespace {
struct ImageConverterTest: TestSuite::Tester { struct ImageConverterImplementationTest: TestSuite::Tester {
explicit ImageConverterTest(); explicit ImageConverterImplementationTest();
void infoImplementation(); void info();
void infoImplementationError(); void infoError();
}; };
ImageConverterTest::ImageConverterTest() { ImageConverterImplementationTest::ImageConverterImplementationTest() {
addTests({&ImageConverterTest::infoImplementation, addTests({&ImageConverterImplementationTest::info,
&ImageConverterTest::infoImplementationError}); &ImageConverterImplementationTest::infoError});
} }
void ImageConverterTest::infoImplementation() { void ImageConverterImplementationTest::info() {
struct Importer: Trade::AbstractImporter { struct Importer: Trade::AbstractImporter {
Trade::ImporterFeatures doFeatures() const override { return {}; } Trade::ImporterFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
@ -139,11 +139,11 @@ void ImageConverterTest::infoImplementation() {
Debug redirectOutput{&out}; Debug redirectOutput{&out};
Implementation::printImageInfo(Debug::Flag::DisableColors, infos, nullptr, nullptr, nullptr); Implementation::printImageInfo(Debug::Flag::DisableColors, infos, nullptr, nullptr, nullptr);
CORRADE_COMPARE_AS(out.str(), CORRADE_COMPARE_AS(out.str(),
Utility::Path::join(TRADE_TEST_DIR, "ImageConverterTestFiles/info.txt"), Utility::Path::join(TRADE_TEST_DIR, "ImageConverterImplementationTestFiles/info.txt"),
TestSuite::Compare::StringToFile); TestSuite::Compare::StringToFile);
} }
void ImageConverterTest::infoImplementationError() { void ImageConverterImplementationTest::infoError() {
struct Importer: Trade::AbstractImporter { struct Importer: Trade::AbstractImporter {
Trade::ImporterFeatures doFeatures() const override { return {}; } Trade::ImporterFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; } bool doIsOpened() const override { return true; }
@ -189,4 +189,4 @@ void ImageConverterTest::infoImplementationError() {
}}}} }}}}
CORRADE_TEST_MAIN(Magnum::Trade::Test::ImageConverterTest) CORRADE_TEST_MAIN(Magnum::Trade::Test::ImageConverterImplementationTest)

0
src/Magnum/Trade/Test/ImageConverterTestFiles/info.txt → src/Magnum/Trade/Test/ImageConverterImplementationTestFiles/info.txt

Loading…
Cancel
Save