From 68898e70fcd30f2df12c2dda45a01fb2e5a248ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 26 Nov 2016 22:16:52 +0100 Subject: [PATCH] Bundle required files for all tests. Similarly to changes done in Magnum itself, this now generalizes the Emscripten file bundling to Android as well and additionally makes CTest check for file presence before running the tests. --- .../AnyAudioImporter/Test/CMakeLists.txt | 15 ++++++++++++--- .../AnyImageConverter/Test/CMakeLists.txt | 9 +++++++-- .../AnyImageConverter/Test/Test.cpp | 10 ++++++---- .../AnyImageConverter/Test/configure.h.cmake | 2 +- .../AnyImageImporter/Test/CMakeLists.txt | 19 +++++++++++++++---- .../AnySceneImporter/Test/CMakeLists.txt | 15 ++++++++++++--- 6 files changed, 53 insertions(+), 17 deletions(-) diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt index 22f0de120..e9c2585f4 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt @@ -23,13 +23,22 @@ # DEALINGS IN THE SOFTWARE. # -set(WAV_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/DrWavAudioImporter/Test/stereo8.wav) -set(OGG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) +if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) + set(WAV_FILE stereo8.wav) + set(OGG_FILE mono16.ogg) +else() + set(WAV_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/DrWavAudioImporter/Test/stereo8.wav) + set(OGG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(AnyAudioImporterTest Test.cpp LIBRARIES MagnumAnyAudioImporterTestLib) +corrade_add_test(AnyAudioImporterTest Test.cpp + LIBRARIES MagnumAnyAudioImporterTestLib + FILES + ../../DrWavAudioImporter/Test/stereo8.wav + ../../StbVorbisAudioImporter/Test/mono16.ogg) target_include_directories(AnyAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting AnyAudioImporter symbols, because it # would search for the symbols in some DLL even when they were linked diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index c2dc1105c..4612151d4 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -23,12 +23,17 @@ # DEALINGS IN THE SOFTWARE. # -set(PNG_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/output.png) +if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) + set(ANYIMAGECONVERTER_TEST_DIR "write") +else() + set(ANYIMAGECONVERTER_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}) +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(AnyImageConverterTest Test.cpp LIBRARIES MagnumAnyImageConverterTestLib) +corrade_add_test(AnyImageConverterTest Test.cpp + LIBRARIES MagnumAnyImageConverterTestLib) target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting AnyImageConverter symbols, because it # would search for the symbols in some DLL even when they were linked diff --git a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp index d242972fb..9d617578f 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyImageConverter/Test/Test.cpp @@ -67,13 +67,15 @@ void AnyImageConverterTest::png() { if(_manager.loadState("PngImageConverter") == PluginManager::LoadState::NotFound) CORRADE_SKIP("PngImageConverter plugin not found, cannot test"); - if(Utility::Directory::fileExists(PNG_OUTPUT_FILE)) - CORRADE_VERIFY(Utility::Directory::rm(PNG_OUTPUT_FILE)); + const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_DIR, "output.png"); + + if(Utility::Directory::fileExists(filename)) + CORRADE_VERIFY(Utility::Directory::rm(filename)); /* Just test that the exported file exists */ AnyImageConverter converter{_manager}; - CORRADE_VERIFY(converter.exportToFile(Image, PNG_OUTPUT_FILE)); - CORRADE_VERIFY(Utility::Directory::fileExists(PNG_OUTPUT_FILE)); + CORRADE_VERIFY(converter.exportToFile(Image, filename)); + CORRADE_VERIFY(Utility::Directory::fileExists(filename)); } void AnyImageConverterTest::unknown() { diff --git a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake index 7c1c64324..932ed56c7 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake @@ -29,4 +29,4 @@ #define MAGNUM_PLUGINS_IMAGECONVERTER_DIR "${MAGNUM_PLUGINS_IMAGECONVERTER_DIR}" #endif -#define PNG_OUTPUT_FILE "${PNG_OUTPUT_FILE}" +#define ANYIMAGECONVERTER_TEST_DIR "${ANYIMAGECONVERTER_TEST_DIR}" diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index c17a984c8..b8608192d 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -23,14 +23,25 @@ # DEALINGS IN THE SOFTWARE. # -set(TGA_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ColladaImporter/Test/ColladaImporterTestFiles/image.tga) -set(JPEG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/JpegImporter/Test/rgb.jpg) -set(PNG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/PngImporter/Test/rgb.png) +if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) + set(TGA_FILE image.tga) + set(JPEG_FILE rgb.jpg) + set(PNG_FILE rgb.png) +else() + set(TGA_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ColladaImporter/Test/ColladaImporterTestFiles/image.tga) + set(JPEG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/JpegImporter/Test/rgb.jpg) + set(PNG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/PngImporter/Test/rgb.png) +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(AnyImageImporterTest Test.cpp LIBRARIES MagnumAnyImageImporterTestLib) +corrade_add_test(AnyImageImporterTest Test.cpp + LIBRARIES MagnumAnyImageImporterTestLib + FILES + ../../ColladaImporter/Test/ColladaImporterTestFiles/image.tga + ../../JpegImporter/Test/rgb.jpg + ../../PngImporter/Test/rgb.png) target_include_directories(AnyImageImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting AnyImageImporter symbols, because it # would search for the symbols in some DLL even when they were linked diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 92b9e270c..136e24837 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -23,13 +23,22 @@ # DEALINGS IN THE SOFTWARE. # -set(OBJ_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj) -set(PLY_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StanfordImporter/Test/common.ply) +if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) + set(OBJ_FILE mesh.obj) + set(PLY_FILE common.ply) +else() + set(OBJ_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mesh.obj) + set(PLY_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StanfordImporter/Test/common.ply) +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(AnySceneImporterTest Test.cpp LIBRARIES MagnumAnySceneImporterTestLib) +corrade_add_test(AnySceneImporterTest Test.cpp + LIBRARIES MagnumAnySceneImporterTestLib + FILES + mesh.obj + ../../StanfordImporter/Test/common.ply) target_include_directories(AnySceneImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # On Win32 we need to avoid dllimporting AnySceneImporter symbols, because it # would search for the symbols in some DLL even when they were linked