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. 40
      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

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

@ -52,7 +52,27 @@ 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 MagnumSceneTools
FILES
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 LIBRARIES
MagnumSceneTools MagnumSceneTools
# Link the same static plugins as for the magnum-sceneconverter # Link the same static plugins as for the magnum-sceneconverter
@ -77,19 +97,6 @@ corrade_add_test(SceneToolsSceneConverterTest SceneConverterTest.cpp
SceneConverterTestFiles/images-3d-1x1x1.gltf SceneConverterTestFiles/images-3d-1x1x1.gltf
SceneConverterTestFiles/info-data.txt SceneConverterTestFiles/info-data.txt
SceneConverterTestFiles/info-data-ignored-output.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/point.obj
SceneConverterTestFiles/quad-duplicates-fuzzy.obj SceneConverterTestFiles/quad-duplicates-fuzzy.obj
SceneConverterTestFiles/quad-duplicates.obj SceneConverterTestFiles/quad-duplicates.obj
@ -117,7 +124,8 @@ corrade_add_test(SceneToolsSceneConverterTest SceneConverterTest.cpp
SceneConverterTestFiles/two-triangles-transformed.bin SceneConverterTestFiles/two-triangles-transformed.bin
SceneConverterTestFiles/two-triangles-transformed.gltf SceneConverterTestFiles/two-triangles-transformed.gltf
SceneConverterTestFiles/two-triangles.obj) SceneConverterTestFiles/two-triangles.obj)
target_include_directories(SceneToolsSceneConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(SceneToolsSceneConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(MAGNUM_WITH_SCENECONVERTER AND CORRADE_TARGET_UNIX) if(MAGNUM_WITH_SCENECONVERTER)
add_dependencies(SceneToolsSceneConverterTest magnum-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