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(SceneToolsOrderClusterParentsTest OrderClusterParentsTest.cpp LIBRARIES MagnumSceneToolsTestLib)
corrade_add_test(SceneToolsSceneConverterTest SceneConverterTest.cpp
LIBRARIES
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}
corrade_add_test(SceneToolsSceneConverterImple___Test SceneConverterImplementationTest.cpp
LIBRARIES MagnumSceneTools
FILES
SceneConverterTestFiles/blue4x4.png
# magnum-imageconverter --layers blue4x4.png --array blue4x4x1.ktx2 -c writerName=
SceneConverterTestFiles/blue4x4x1.ktx2
SceneConverterTestFiles/broken-image-2d.gltf
SceneConverterTestFiles/broken-image-3d.gltf
SceneConverterTestFiles/broken-mesh.obj
SceneConverterTestFiles/broken-scene.gltf
SceneConverterTestFiles/dxt1.dds
SceneConverterTestFiles/empty.gltf
SceneConverterTestFiles/image-dds.gltf
SceneConverterTestFiles/images-2d.gltf
SceneConverterTestFiles/images-2d-1x1.bin
SceneConverterTestFiles/images-2d-1x1.gltf
SceneConverterTestFiles/images-3d.gltf
SceneConverterTestFiles/images-3d-1x1x1.bin
SceneConverterTestFiles/images-3d-1x1x1.gltf
SceneConverterTestFiles/info-data.txt
SceneConverterTestFiles/info-data-ignored-output.txt
SceneConverterTestFiles/info-animations.txt
SceneConverterTestFiles/info-cameras.txt
SceneConverterTestFiles/info-images.txt
SceneConverterTestFiles/info-lights.txt
SceneConverterTestFiles/info-materials.txt
SceneConverterTestFiles/info-meshes-bounds.txt
SceneConverterTestFiles/info-meshes.txt
SceneConverterTestFiles/info-objects.txt
SceneConverterTestFiles/info-references.txt
SceneConverterTestFiles/info-scenes-objects.txt
SceneConverterTestFiles/info-scenes.txt
SceneConverterTestFiles/info-skins.txt
SceneConverterTestFiles/info-textures.txt
SceneConverterTestFiles/point.obj
SceneConverterTestFiles/quad-duplicates-fuzzy.obj
SceneConverterTestFiles/quad-duplicates.obj
SceneConverterTestFiles/quad-duplicates.ply
SceneConverterTestFiles/quad-name-custom-attributes-duplicates.bin
SceneConverterTestFiles/quad-name-custom-attributes-duplicates.gltf
SceneConverterTestFiles/quad-name-custom-attributes.bin
SceneConverterTestFiles/quad-name-custom-attributes.gltf
SceneConverterTestFiles/quad-normals-texcoords.obj
SceneConverterTestFiles/quad-strip.bin
SceneConverterTestFiles/quad-strip.gltf
SceneConverterTestFiles/quad.bin
SceneConverterTestFiles/quad.gltf
SceneConverterTestFiles/quad.obj
SceneConverterTestFiles/quad.ply
SceneConverterTestFiles/red2x2.png
# magnum-imageconverter --layers red2x2.png --array red2x2x1.ktx2 -c writerName=
SceneConverterTestFiles/red2x2x1.ktx2
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 AND CORRADE_TARGET_UNIX)
add_dependencies(SceneToolsSceneConverterTest magnum-sceneconverter)
SceneConverterImplementationTestFiles/info-animations.txt
SceneConverterImplementationTestFiles/info-cameras.txt
SceneConverterImplementationTestFiles/info-images.txt
SceneConverterImplementationTestFiles/info-lights.txt
SceneConverterImplementationTestFiles/info-materials.txt
SceneConverterImplementationTestFiles/info-meshes-bounds.txt
SceneConverterImplementationTestFiles/info-meshes.txt
SceneConverterImplementationTestFiles/info-objects.txt
SceneConverterImplementationTestFiles/info-references.txt
SceneConverterImplementationTestFiles/info-scenes-objects.txt
SceneConverterImplementationTestFiles/info-scenes.txt
SceneConverterImplementationTestFiles/info-skins.txt
SceneConverterImplementationTestFiles/info-textures.txt)
target_include_directories(SceneToolsSceneConverterImple___Test PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
# Executable testing is implemented on Unix platforms only at the moment
if(CORRADE_TARGET_UNIX AND NOT CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT)
corrade_add_test(SceneToolsSceneConverterTest SceneConverterTest.cpp
LIBRARIES
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
SceneConverterTestFiles/blue4x4.png
# magnum-imageconverter --layers blue4x4.png --array blue4x4x1.ktx2 -c writerName=
SceneConverterTestFiles/blue4x4x1.ktx2
SceneConverterTestFiles/broken-image-2d.gltf
SceneConverterTestFiles/broken-image-3d.gltf
SceneConverterTestFiles/broken-mesh.obj
SceneConverterTestFiles/broken-scene.gltf
SceneConverterTestFiles/dxt1.dds
SceneConverterTestFiles/empty.gltf
SceneConverterTestFiles/image-dds.gltf
SceneConverterTestFiles/images-2d.gltf
SceneConverterTestFiles/images-2d-1x1.bin
SceneConverterTestFiles/images-2d-1x1.gltf
SceneConverterTestFiles/images-3d.gltf
SceneConverterTestFiles/images-3d-1x1x1.bin
SceneConverterTestFiles/images-3d-1x1x1.gltf
SceneConverterTestFiles/info-data.txt
SceneConverterTestFiles/info-data-ignored-output.txt
SceneConverterTestFiles/point.obj
SceneConverterTestFiles/quad-duplicates-fuzzy.obj
SceneConverterTestFiles/quad-duplicates.obj
SceneConverterTestFiles/quad-duplicates.ply
SceneConverterTestFiles/quad-name-custom-attributes-duplicates.bin
SceneConverterTestFiles/quad-name-custom-attributes-duplicates.gltf
SceneConverterTestFiles/quad-name-custom-attributes.bin
SceneConverterTestFiles/quad-name-custom-attributes.gltf
SceneConverterTestFiles/quad-normals-texcoords.obj
SceneConverterTestFiles/quad-strip.bin
SceneConverterTestFiles/quad-strip.gltf
SceneConverterTestFiles/quad.bin
SceneConverterTestFiles/quad.gltf
SceneConverterTestFiles/quad.obj
SceneConverterTestFiles/quad.ply
SceneConverterTestFiles/red2x2.png
# magnum-imageconverter --layers red2x2.png --array red2x2x1.ktx2 -c writerName=
SceneConverterTestFiles/red2x2x1.ktx2
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()

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(TradeFlatMaterialDataTest FlatMaterialDataTest.cpp LIBRARIES MagnumTradeTestLib)
corrade_add_test(TradeImageConverterTest ImageConverterTest.cpp
corrade_add_test(TradeImageConverterImplementa___Test ImageConverterImplementationTest.cpp
LIBRARIES MagnumTrade
FILES
ImageConverterTestFiles/info.txt)
target_include_directories(TradeImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
ImageConverterImplementationTestFiles/info.txt)
target_include_directories(TradeImageConverterImplementa___Test PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
corrade_add_test(TradeImageDataTest ImageDataTest.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 {
struct ImageConverterTest: TestSuite::Tester {
explicit ImageConverterTest();
struct ImageConverterImplementationTest: TestSuite::Tester {
explicit ImageConverterImplementationTest();
void infoImplementation();
void infoImplementationError();
void info();
void infoError();
};
ImageConverterTest::ImageConverterTest() {
addTests({&ImageConverterTest::infoImplementation,
&ImageConverterTest::infoImplementationError});
ImageConverterImplementationTest::ImageConverterImplementationTest() {
addTests({&ImageConverterImplementationTest::info,
&ImageConverterImplementationTest::infoError});
}
void ImageConverterTest::infoImplementation() {
void ImageConverterImplementationTest::info() {
struct Importer: Trade::AbstractImporter {
Trade::ImporterFeatures doFeatures() const override { return {}; }
bool doIsOpened() const override { return true; }
@ -139,11 +139,11 @@ void ImageConverterTest::infoImplementation() {
Debug redirectOutput{&out};
Implementation::printImageInfo(Debug::Flag::DisableColors, infos, nullptr, nullptr, nullptr);
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);
}
void ImageConverterTest::infoImplementationError() {
void ImageConverterImplementationTest::infoError() {
struct Importer: Trade::AbstractImporter {
Trade::ImporterFeatures doFeatures() const override { return {}; }
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