From b9541f7f82a0739275e2bd26cceb193ad04bffd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 8 Jun 2022 12:29:10 +0200 Subject: [PATCH] Any*{Importer,Converter}: clean up test file path passing. It doesn't scale well if every file is its own CMake variable and a preprocessor macro. --- .../Test/AnyAudioImporterTest.cpp | 9 ++-- .../AnyAudioImporter/Test/CMakeLists.txt | 6 +-- .../AnyAudioImporter/Test/configure.h.cmake | 2 +- .../Test/AnyImageConverterTest.cpp | 6 +-- .../AnyImageConverter/Test/CMakeLists.txt | 14 +++--- .../AnyImageConverter/Test/configure.h.cmake | 4 +- .../Test/AnyImageImporterTest.cpp | 44 +++++++++---------- .../AnyImageImporter/Test/CMakeLists.txt | 12 +---- .../AnyImageImporter/Test/configure.h.cmake | 6 +-- .../Test/AnySceneConverterTest.cpp | 4 +- .../AnySceneConverter/Test/CMakeLists.txt | 10 ++--- .../AnySceneConverter/Test/configure.h.cmake | 4 +- .../Test/AnySceneImporterTest.cpp | 26 ++++++----- .../AnySceneImporter/Test/CMakeLists.txt | 10 ++--- .../AnySceneImporter/Test/configure.h.cmake | 4 +- 15 files changed, 74 insertions(+), 87 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/AnyAudioImporterTest.cpp b/src/MagnumPlugins/AnyAudioImporter/Test/AnyAudioImporterTest.cpp index fded104c4..6e8ce4c32 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/AnyAudioImporterTest.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/Test/AnyAudioImporterTest.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include "Magnum/Audio/AbstractImporter.h" @@ -52,11 +53,11 @@ struct AnyImporterTest: TestSuite::Tester { PluginManager::Manager _manager{"nonexistent"}; }; -constexpr struct { +const struct { const char* name; - const char* filename; + Containers::String filename; } LoadData[]{ - {"WAV", WAV_FILE} + {"WAV", Utility::Path::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo8.wav")} }; constexpr struct { @@ -153,7 +154,7 @@ void AnyImporterTest::propagateConfigurationUnknown() { std::ostringstream out; Warning redirectWarning{&out}; - CORRADE_VERIFY(importer->openFile(WAV_FILE)); + CORRADE_VERIFY(importer->openFile(Utility::Path::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo8.wav"))); CORRADE_COMPARE(out.str(), "Audio::AnyImporter::openFile(): option noSuchOption not recognized by WavAudioImporter\n"); } diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index e54b17d8b..c35a55d9a 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -28,9 +28,9 @@ set(CMAKE_FOLDER "MagnumPlugins/AnyAudioImporter/Test") if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) - set(WAV_FILE stereo8.wav) + set(WAVAUDIOIMPORTER_TEST_DIR .) else() - set(WAV_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/WavAudioImporter/Test/stereo8.wav) + set(WAVAUDIOIMPORTER_TEST_DIR ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/WavAudioImporter/Test) endif() # CMake before 3.8 has broken $ expressions for iOS (see @@ -53,7 +53,7 @@ file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$/configure.h corrade_add_test(AnyAudioImporterTest AnyAudioImporterTest.cpp LIBRARIES MagnumAudio FILES - ../../WavAudioImporter/Test/stereo8.wav) + ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/WavAudioImporter/Test/stereo8.wav) target_include_directories(AnyAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$) if(MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC) target_link_libraries(AnyAudioImporterTest PRIVATE AnyAudioImporter) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake index 29d32aa8f..a59881930 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake @@ -25,4 +25,4 @@ #cmakedefine ANYAUDIOIMPORTER_PLUGIN_FILENAME "${ANYAUDIOIMPORTER_PLUGIN_FILENAME}" #cmakedefine WAVAUDIOIMPORTER_PLUGIN_FILENAME "${WAVAUDIOIMPORTER_PLUGIN_FILENAME}" -#define WAV_FILE "${WAV_FILE}" +#define WAVAUDIOIMPORTER_TEST_DIR "${WAVAUDIOIMPORTER_TEST_DIR}" diff --git a/src/MagnumPlugins/AnyImageConverter/Test/AnyImageConverterTest.cpp b/src/MagnumPlugins/AnyImageConverter/Test/AnyImageConverterTest.cpp index 367e285f4..afbbcb47b 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/AnyImageConverterTest.cpp +++ b/src/MagnumPlugins/AnyImageConverter/Test/AnyImageConverterTest.cpp @@ -446,7 +446,7 @@ void AnyImageConverterTest::convert1D() { /* Compare to an expected output to ensure we actually saved the file including the metadata. This also doubles as a generator for the 1d.ktx2 file that AnyImageImporterTest uses. */ - CORRADE_COMPARE_AS(filename, KTX_1D_FILE, TestSuite::Compare::File); + CORRADE_COMPARE_AS(filename, Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "1d.ktx2"), TestSuite::Compare::File); } void AnyImageConverterTest::convert2D() { @@ -482,7 +482,7 @@ void AnyImageConverterTest::convert3D() { /* Compare to an expected output to ensure we actually saved the file including the metadata. This also doubles as a generator for the 3d.exr file that AnyImageImporterTest uses. */ - CORRADE_COMPARE_AS(filename, KTX_3D_FILE, TestSuite::Compare::File); + CORRADE_COMPARE_AS(filename, Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "3d.ktx2"), TestSuite::Compare::File); } void AnyImageConverterTest::convertCompressed1D() { @@ -1278,7 +1278,7 @@ void AnyImageConverterTest::propagateConfiguration2D() { /* Compare to an expected output to ensure the custom channels names were used. This also doubles as a generator for the depth32f-custom-channels.exr file that AnyImageImporterTest uses. */ - CORRADE_COMPARE_AS(filename, EXR_FILE, TestSuite::Compare::File); + CORRADE_COMPARE_AS(filename, Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "depth32f-custom-channels.exr"), TestSuite::Compare::File); } void AnyImageConverterTest::propagateConfiguration3D() { diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index c34da2ede..726aecf29 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -34,14 +34,10 @@ find_package(Threads REQUIRED) if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) set(ANYIMAGECONVERTER_TEST_OUTPUT_DIR "write") - set(KTX_1D_FILE 1d.ktx2) - set(KTX_3D_FILE 3d.ktx2) - set(EXR_FILE depth32f-custom-channels.exr) + set(ANYIMAGEIMPORTER_TEST_DIR .) else() set(ANYIMAGECONVERTER_TEST_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) - set(KTX_1D_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/1d.ktx2) - set(KTX_3D_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/3d.ktx2) - set(EXR_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/depth32f-custom-channels.exr) + set(ANYIMAGEIMPORTER_TEST_DIR ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test) endif() # CMake before 3.8 has broken $ expressions for iOS (see @@ -69,9 +65,9 @@ corrade_add_test(AnyImageConverterTest AnyImageConverterTest.cpp # now Threads::Threads FILES - ../../AnyImageImporter/Test/1d.ktx2 - ../../AnyImageImporter/Test/3d.ktx2 - ../../AnyImageImporter/Test/depth32f-custom-channels.exr) + ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/1d.ktx2 + ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/3d.ktx2 + ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/depth32f-custom-channels.exr) target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$) if(MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC) target_link_libraries(AnyImageConverterTest PRIVATE AnyImageConverter) diff --git a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake index 1b2d6aa87..2abda2282 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake @@ -26,9 +26,7 @@ #cmakedefine ANYIMAGECONVERTER_PLUGIN_FILENAME "${ANYIMAGECONVERTER_PLUGIN_FILENAME}" #cmakedefine TGAIMAGECONVERTER_PLUGIN_FILENAME "${TGAIMAGECONVERTER_PLUGIN_FILENAME}" #define ANYIMAGECONVERTER_TEST_OUTPUT_DIR "${ANYIMAGECONVERTER_TEST_OUTPUT_DIR}" -#define KTX_1D_FILE "${KTX_1D_FILE}" -#define KTX_3D_FILE "${KTX_3D_FILE}" -#define EXR_FILE "${EXR_FILE}" +#define ANYIMAGEIMPORTER_TEST_DIR "${ANYIMAGEIMPORTER_TEST_DIR}" #ifdef CORRADE_TARGET_WINDOWS #ifdef CORRADE_IS_DEBUG_BUILD diff --git a/src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp b/src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp index 93e8a73e3..ccc9e24a0 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp +++ b/src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp @@ -72,8 +72,8 @@ constexpr struct { bool asData; const char* messageFunctionName; } Load1DData[]{ - {"KTX2", KTX_1D_FILE, false, "KtxImporter"}, - {"KTX2 data", KTX_1D_FILE, true, "KtxImporter"}, + {"KTX2", "1d.ktx2", false, "KtxImporter"}, + {"KTX2 data", "1d.ktx2", true, "KtxImporter"}, }; constexpr struct { @@ -82,8 +82,8 @@ constexpr struct { bool asData; const char* messageFunctionName; } Load2DData[]{ - {"TGA", TGA_FILE, false, "openFile"}, - {"TGA data", TGA_FILE, true, "openData"} + {"TGA", "rgb.tga", false, "openFile"}, + {"TGA data", "rgb.tga", true, "openData"} }; constexpr struct { @@ -92,8 +92,8 @@ constexpr struct { bool asData; const char* messageFunctionName; } Load3DData[]{ - {"KTX2", KTX_3D_FILE, false, "KtxImporter"}, - {"KTX2 data", KTX_3D_FILE, true, "KtxImporter"}, + {"KTX2", "3d.ktx2", false, "KtxImporter"}, + {"KTX2 data", "3d.ktx2", true, "KtxImporter"}, }; constexpr struct { @@ -156,8 +156,8 @@ constexpr struct { const char* filename; bool asData; } PropagateConfigurationData[]{ - {"EXR", EXR_FILE, false}, - {"EXR data", EXR_FILE, true} + {"EXR", "depth32f-custom-channels.exr", false}, + {"EXR data", "depth32f-custom-channels.exr", true} }; AnyImageImporterTest::AnyImageImporterTest() { @@ -218,10 +218,10 @@ void AnyImageImporterTest::load1D() { Containers::Pointer importer = manager.instantiate("AnyImageImporter"); if(data.asData) { - Containers::Optional> read = Utility::Path::read(data.filename); + Containers::Optional> read = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename)); CORRADE_VERIFY(read); CORRADE_VERIFY(importer->openData(*read)); - } else CORRADE_VERIFY(importer->openFile(data.filename)); + } else CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename))); CORRADE_COMPARE(importer->image1DCount(), 1); /* Check only size, as it is good enough proof that it is working */ @@ -240,10 +240,10 @@ void AnyImageImporterTest::load2D() { Containers::Pointer importer = _manager.instantiate("AnyImageImporter"); if(data.asData) { - Containers::Optional> read = Utility::Path::read(data.filename); + Containers::Optional> read = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename)); CORRADE_VERIFY(read); CORRADE_VERIFY(importer->openData(*read)); - } else CORRADE_VERIFY(importer->openFile(data.filename)); + } else CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename))); CORRADE_COMPARE(importer->image2DCount(), 1); /* Check only size, as it is good enough proof that it is working */ @@ -271,10 +271,10 @@ void AnyImageImporterTest::load3D() { Containers::Pointer importer = manager.instantiate("AnyImageImporter"); if(data.asData) { - Containers::Optional> read = Utility::Path::read(data.filename); + Containers::Optional> read = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename)); CORRADE_VERIFY(read); CORRADE_VERIFY(importer->openData(*read)); - } else CORRADE_VERIFY(importer->openFile(data.filename)); + } else CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename))); CORRADE_COMPARE(importer->image3DCount(), 1); /* Check only size, as it is good enough proof that it is working */ @@ -288,7 +288,7 @@ void AnyImageImporterTest::detect() { setTestCaseDescription(data.name); Containers::Pointer importer = _manager.instantiate("AnyImageImporter"); - Containers::String filename = Utility::Path::join(TEST_FILE_DIR, data.filename); + Containers::String filename = Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename); std::ostringstream out; Error redirectError{&out}; @@ -354,10 +354,10 @@ void AnyImageImporterTest::propagateFlags() { { Debug redirectOutput{&out}; if(data.asData) { - Containers::Optional> read = Utility::Path::read(data.filename); + Containers::Optional> read = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename)); CORRADE_VERIFY(read); CORRADE_VERIFY(importer->openData(*read)); - } else CORRADE_VERIFY(importer->openFile(data.filename)); + } else CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename))); CORRADE_VERIFY(importer->image2D(0)); } CORRADE_COMPARE(out.str(), Utility::formatString( @@ -384,10 +384,10 @@ void AnyImageImporterTest::propagateConfiguration() { importer->configuration().setValue("depth", "height"); if(data.asData) { - Containers::Optional> read = Utility::Path::read(data.filename); + Containers::Optional> read = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename)); CORRADE_VERIFY(read); CORRADE_VERIFY(importer->openData(*read)); - } else CORRADE_VERIFY(importer->openFile(data.filename)); + } else CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename))); Containers::Optional image = importer->image2D(0); CORRADE_VERIFY(image); @@ -414,10 +414,10 @@ void AnyImageImporterTest::propagateConfigurationUnknown() { std::ostringstream out; Warning redirectWarning{&out}; if(data.asData) { - Containers::Optional> read = Utility::Path::read(data.filename); + Containers::Optional> read = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename)); CORRADE_VERIFY(read); CORRADE_VERIFY(importer->openData(*read)); - } else CORRADE_VERIFY(importer->openFile(data.filename)); + } else CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename))); CORRADE_COMPARE(out.str(), Utility::formatString("Trade::AnyImageImporter::{}(): option noSuchOption not recognized by TgaImporter\n", data.messageFunctionName)); } @@ -429,7 +429,7 @@ void AnyImageImporterTest::propagateFileCallback() { Containers::Array storage; importer->setFileCallback([](const std::string&, InputFileCallbackPolicy, Containers::Array& storage) -> Containers::Optional> { - Containers::Optional> data = Utility::Path::read(TGA_FILE); + Containers::Optional> data = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "rgb.tga")); CORRADE_VERIFY(data); storage = *std::move(data); return Containers::ArrayView{storage}; diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index 7f94d2756..2b1a71c69 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -28,17 +28,9 @@ set(CMAKE_FOLDER "MagnumPlugins/AnyImageImporter/Test") if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) - set(TEST_FILE_DIR .) - set(TGA_FILE rgb.tga) - set(KTX_1D_FILE 1d.ktx2) - set(KTX_3D_FILE 3d.ktx2) - set(EXR_FILE depth32f-custom-channels.exr) + set(ANYIMAGEIMPORTER_TEST_DIR .) else() - set(TEST_FILE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - set(TGA_FILE ${CMAKE_CURRENT_SOURCE_DIR}/rgb.tga) - set(KTX_1D_FILE ${CMAKE_CURRENT_SOURCE_DIR}/1d.ktx2) - set(KTX_3D_FILE ${CMAKE_CURRENT_SOURCE_DIR}/3d.ktx2) - set(EXR_FILE ${CMAKE_CURRENT_SOURCE_DIR}/depth32f-custom-channels.exr) + set(ANYIMAGEIMPORTER_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}) endif() # CMake before 3.8 has broken $ expressions for iOS (see diff --git a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake index baf9fe5fb..e7baad43d 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake @@ -25,11 +25,7 @@ #cmakedefine ANYIMAGEIMPORTER_PLUGIN_FILENAME "${ANYIMAGEIMPORTER_PLUGIN_FILENAME}" #cmakedefine TGAIMPORTER_PLUGIN_FILENAME "${TGAIMPORTER_PLUGIN_FILENAME}" -#define TGA_FILE "${TGA_FILE}" -#define TEST_FILE_DIR "${TEST_FILE_DIR}" -#define KTX_1D_FILE "${KTX_1D_FILE}" -#define KTX_3D_FILE "${KTX_3D_FILE}" -#define EXR_FILE "${EXR_FILE}" +#define ANYIMAGEIMPORTER_TEST_DIR "${ANYIMAGEIMPORTER_TEST_DIR}" #ifdef CORRADE_TARGET_WINDOWS #ifdef CORRADE_IS_DEBUG_BUILD diff --git a/src/MagnumPlugins/AnySceneConverter/Test/AnySceneConverterTest.cpp b/src/MagnumPlugins/AnySceneConverter/Test/AnySceneConverterTest.cpp index d38416ee9..0844e5764 100644 --- a/src/MagnumPlugins/AnySceneConverter/Test/AnySceneConverterTest.cpp +++ b/src/MagnumPlugins/AnySceneConverter/Test/AnySceneConverterTest.cpp @@ -118,7 +118,7 @@ void AnySceneConverterTest::convert() { CORRADE_VERIFY(converter->convertToFile(mesh, filename)); /* This file is reused in AnySceneImporter tests, so it's worth to save it here */ - CORRADE_COMPARE_AS(filename, PLY_FILE, TestSuite::Compare::File); + CORRADE_COMPARE_AS(filename, Utility::Path::join(ANYSCENEIMPORTER_TEST_DIR, "triangle.ply"), TestSuite::Compare::File); } void AnySceneConverterTest::detect() { @@ -218,7 +218,7 @@ void AnySceneConverterTest::propagateConfiguration() { CORRADE_VERIFY(converter->convertToFile(mesh, filename)); /* Compare to an expected output to ensure the custom attribute name was used */ - CORRADE_COMPARE_AS(filename, PLY_OBJECTID_FILE, TestSuite::Compare::File); + CORRADE_COMPARE_AS(filename, Utility::Path::join(ANYSCENECONVERTER_TEST_DIR, "objectid.ply"), TestSuite::Compare::File); } void AnySceneConverterTest::propagateConfigurationUnknown() { diff --git a/src/MagnumPlugins/AnySceneConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneConverter/Test/CMakeLists.txt index d2b9e4b11..32dbdea8d 100644 --- a/src/MagnumPlugins/AnySceneConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneConverter/Test/CMakeLists.txt @@ -28,13 +28,13 @@ set(CMAKE_FOLDER "MagnumPlugins/AnySceneConverter/Test") if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) + set(ANYSCENECONVERTER_TEST_DIR .) set(ANYSCENECONVERTER_TEST_OUTPUT_DIR "write") - set(PLY_FILE triangle.ply) - set(PLY_OBJECTID_FILE objectid.ply) + set(ANYSCENEIMPORTER_TEST_DIR .) else() + set(ANYSCENECONVERTER_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(ANYSCENECONVERTER_TEST_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) - set(PLY_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test/triangle.ply) - set(PLY_OBJECTID_FILE ${CMAKE_CURRENT_SOURCE_DIR}/objectid.ply) + set(ANYSCENEIMPORTER_TEST_DIR ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test) endif() # CMake before 3.8 has broken $ expressions for iOS (see @@ -57,7 +57,7 @@ file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$/configure.h corrade_add_test(AnySceneConverterTest AnySceneConverterTest.cpp LIBRARIES MagnumTrade FILES - ../../AnySceneImporter/Test/triangle.ply + ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test/triangle.ply objectid.ply) target_include_directories(AnySceneConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$) if(MAGNUM_ANYSCENECONVERTER_BUILD_STATIC) diff --git a/src/MagnumPlugins/AnySceneConverter/Test/configure.h.cmake b/src/MagnumPlugins/AnySceneConverter/Test/configure.h.cmake index 47bd524c1..9d4c17444 100644 --- a/src/MagnumPlugins/AnySceneConverter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnySceneConverter/Test/configure.h.cmake @@ -25,8 +25,8 @@ #cmakedefine ANYSCENECONVERTER_PLUGIN_FILENAME "${ANYSCENECONVERTER_PLUGIN_FILENAME}" #define ANYSCENECONVERTER_TEST_OUTPUT_DIR "${ANYSCENECONVERTER_TEST_OUTPUT_DIR}" -#define PLY_FILE "${PLY_FILE}" -#define PLY_OBJECTID_FILE "${PLY_OBJECTID_FILE}" +#define ANYSCENECONVERTER_TEST_DIR "${ANYSCENECONVERTER_TEST_DIR}" +#define ANYSCENEIMPORTER_TEST_DIR "${ANYSCENEIMPORTER_TEST_DIR}" #ifdef CORRADE_TARGET_WINDOWS #ifdef CORRADE_IS_DEBUG_BUILD diff --git a/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp b/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp index 1309beb14..2542068a2 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp @@ -68,11 +68,11 @@ struct AnySceneImporterTest: TestSuite::Tester { PluginManager::Manager _manager{"nonexistent"}; }; -constexpr struct { +const struct { const char* name; - const char* filename; + Containers::String filename; } LoadData[]{ - {"OBJ", OBJ_FILE}, + {"OBJ", Utility::Path::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")}, }; constexpr struct { @@ -146,7 +146,7 @@ void AnySceneImporterTest::loadDeprecatedMeshData() { CORRADE_SKIP("ObjImporter plugin not enabled, cannot test"); Containers::Pointer importer = _manager.instantiate("AnySceneImporter"); - CORRADE_VERIFY(importer->openFile(OBJ_FILE)); + CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj"))); /* Check only size, as it is good enough proof that it is working */ @@ -202,19 +202,21 @@ void AnySceneImporterTest::propagateFlags() { /* Ensure Assimp is used for PLY files and not our StanfordImporter */ manager.setPreferredPlugins("StanfordImporter", {"AssimpImporter"}); + Containers::String filename = Utility::Path::join(ANYSCENEIMPORTER_TEST_DIR, "triangle.ply"); + Containers::Pointer importer = manager.instantiate("AnySceneImporter"); importer->setFlags(ImporterFlag::Verbose); std::ostringstream out; { Debug redirectOutput{&out}; - CORRADE_VERIFY(importer->openFile(PLY_FILE)); + CORRADE_VERIFY(importer->openFile(filename)); CORRADE_VERIFY(importer->mesh(0)); } - CORRADE_COMPARE_AS(out.str(), + CORRADE_COMPARE_AS(out.str(), Utility::formatString( "Trade::AnySceneImporter::openFile(): using StanfordImporter (provided by AssimpImporter)\n" - "Trade::AssimpImporter: Info, T0: Load " PLY_FILE "\n", + "Trade::AssimpImporter: Info, T0: Load {}\n", filename), TestSuite::Compare::StringHasPrefix); } @@ -229,17 +231,19 @@ void AnySceneImporterTest::propagateConfiguration() { /* Ensure Assimp is used for PLY files and not our StanfordImporter */ manager.setPreferredPlugins("StanfordImporter", {"AssimpImporter"}); + Containers::String filename = Utility::Path::join(ANYSCENEIMPORTER_TEST_DIR, "triangle.ply"); + Containers::Pointer importer = manager.instantiate("AnySceneImporter"); { - CORRADE_VERIFY(importer->openFile(PLY_FILE)); + CORRADE_VERIFY(importer->openFile(filename)); Containers::Optional mesh = importer->mesh(0); CORRADE_VERIFY(mesh); CORRADE_VERIFY(!mesh->hasAttribute(Trade::MeshAttribute::Normal)); } { importer->configuration().addGroup("postprocess")->setValue("GenNormals", true); - CORRADE_VERIFY(importer->openFile(PLY_FILE)); + CORRADE_VERIFY(importer->openFile(filename)); Containers::Optional mesh = importer->mesh(0); CORRADE_VERIFY(mesh); @@ -268,7 +272,7 @@ void AnySceneImporterTest::propagateConfigurationUnknown() { std::ostringstream out; Warning redirectWarning{&out}; - CORRADE_VERIFY(importer->openFile(PLY_FILE)); + CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYSCENEIMPORTER_TEST_DIR, "triangle.ply"))); CORRADE_COMPARE(out.str(), "Trade::AnySceneImporter::openFile(): option noSuchOption not recognized by AssimpImporter\n" "Trade::AnySceneImporter::openFile(): option postprocess/notHere not recognized by AssimpImporter\n" @@ -283,7 +287,7 @@ void AnySceneImporterTest::propagateFileCallback() { Containers::Array storage; importer->setFileCallback([](const std::string&, InputFileCallbackPolicy, Containers::Array& storage) -> Containers::Optional> { - Containers::Optional> data = Utility::Path::read(OBJ_FILE); + Containers::Optional> data = Utility::Path::read(Utility::Path::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")); CORRADE_VERIFY(data); storage = *std::move(data); return Containers::ArrayView{storage}; diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 799f375a5..e55e92eb7 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -28,11 +28,11 @@ set(CMAKE_FOLDER "MagnumPlugins/AnySceneImporter/Test") if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) - set(OBJ_FILE pointMesh.obj) - set(PLY_FILE triangle.ply) + set(OBJIMPORTER_TEST_DIR ) + set(ANYSCENEIMPORTER_TEST_DIR .) else() - set(OBJ_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ObjImporter/Test/pointMesh.obj) - set(PLY_FILE ${CMAKE_CURRENT_SOURCE_DIR}/triangle.ply) + set(ANYSCENEIMPORTER_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + set(OBJIMPORTER_TEST_DIR ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ObjImporter/Test) endif() # CMake before 3.8 has broken $ expressions for iOS (see @@ -55,7 +55,7 @@ file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$/configure.h corrade_add_test(AnySceneImporterTest AnySceneImporterTest.cpp LIBRARIES MagnumTrade FILES - ../../ObjImporter/Test/pointMesh.obj + ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ObjImporter/Test/pointMesh.obj triangle.ply) target_include_directories(AnySceneImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$) if(MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC) diff --git a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake index fa89bae45..fea53376a 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake @@ -25,8 +25,8 @@ #cmakedefine ANYSCENEIMPORTER_PLUGIN_FILENAME "${ANYSCENEIMPORTER_PLUGIN_FILENAME}" #cmakedefine OBJIMPORTER_PLUGIN_FILENAME "${OBJIMPORTER_PLUGIN_FILENAME}" -#define OBJ_FILE "${OBJ_FILE}" -#define PLY_FILE "${PLY_FILE}" +#define ANYSCENEIMPORTER_TEST_DIR "${ANYSCENEIMPORTER_TEST_DIR}" +#define OBJIMPORTER_TEST_DIR "${OBJIMPORTER_TEST_DIR}" #ifdef CORRADE_TARGET_WINDOWS #ifdef CORRADE_IS_DEBUG_BUILD