Browse Source

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.
pull/205/head
Vladimír Vondruš 10 years ago
parent
commit
68898e70fc
  1. 15
      src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt
  2. 9
      src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt
  3. 10
      src/MagnumPlugins/AnyImageConverter/Test/Test.cpp
  4. 2
      src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake
  5. 19
      src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt
  6. 15
      src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt

15
src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt

@ -23,13 +23,22 @@
# DEALINGS IN THE SOFTWARE. # DEALINGS IN THE SOFTWARE.
# #
set(WAV_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/DrWavAudioImporter/Test/stereo8.wav) if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID)
set(OGG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StbVorbisAudioImporter/Test/mono16.ogg) 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 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/configure.h) ${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}) target_include_directories(AnyAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
# On Win32 we need to avoid dllimporting AnyAudioImporter symbols, because it # On Win32 we need to avoid dllimporting AnyAudioImporter symbols, because it
# would search for the symbols in some DLL even when they were linked # would search for the symbols in some DLL even when they were linked

9
src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt

@ -23,12 +23,17 @@
# DEALINGS IN THE SOFTWARE. # 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 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/configure.h) ${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}) target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
# On Win32 we need to avoid dllimporting AnyImageConverter symbols, because it # On Win32 we need to avoid dllimporting AnyImageConverter symbols, because it
# would search for the symbols in some DLL even when they were linked # would search for the symbols in some DLL even when they were linked

10
src/MagnumPlugins/AnyImageConverter/Test/Test.cpp

@ -67,13 +67,15 @@ void AnyImageConverterTest::png() {
if(_manager.loadState("PngImageConverter") == PluginManager::LoadState::NotFound) if(_manager.loadState("PngImageConverter") == PluginManager::LoadState::NotFound)
CORRADE_SKIP("PngImageConverter plugin not found, cannot test"); CORRADE_SKIP("PngImageConverter plugin not found, cannot test");
if(Utility::Directory::fileExists(PNG_OUTPUT_FILE)) const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_DIR, "output.png");
CORRADE_VERIFY(Utility::Directory::rm(PNG_OUTPUT_FILE));
if(Utility::Directory::fileExists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
/* Just test that the exported file exists */ /* Just test that the exported file exists */
AnyImageConverter converter{_manager}; AnyImageConverter converter{_manager};
CORRADE_VERIFY(converter.exportToFile(Image, PNG_OUTPUT_FILE)); CORRADE_VERIFY(converter.exportToFile(Image, filename));
CORRADE_VERIFY(Utility::Directory::fileExists(PNG_OUTPUT_FILE)); CORRADE_VERIFY(Utility::Directory::fileExists(filename));
} }
void AnyImageConverterTest::unknown() { void AnyImageConverterTest::unknown() {

2
src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake

@ -29,4 +29,4 @@
#define MAGNUM_PLUGINS_IMAGECONVERTER_DIR "${MAGNUM_PLUGINS_IMAGECONVERTER_DIR}" #define MAGNUM_PLUGINS_IMAGECONVERTER_DIR "${MAGNUM_PLUGINS_IMAGECONVERTER_DIR}"
#endif #endif
#define PNG_OUTPUT_FILE "${PNG_OUTPUT_FILE}" #define ANYIMAGECONVERTER_TEST_DIR "${ANYIMAGECONVERTER_TEST_DIR}"

19
src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt

@ -23,14 +23,25 @@
# DEALINGS IN THE SOFTWARE. # DEALINGS IN THE SOFTWARE.
# #
set(TGA_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ColladaImporter/Test/ColladaImporterTestFiles/image.tga) if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID)
set(JPEG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/JpegImporter/Test/rgb.jpg) set(TGA_FILE image.tga)
set(PNG_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/PngImporter/Test/rgb.png) 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 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/configure.h) ${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}) target_include_directories(AnyImageImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
# On Win32 we need to avoid dllimporting AnyImageImporter symbols, because it # On Win32 we need to avoid dllimporting AnyImageImporter symbols, because it
# would search for the symbols in some DLL even when they were linked # would search for the symbols in some DLL even when they were linked

15
src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt

@ -23,13 +23,22 @@
# DEALINGS IN THE SOFTWARE. # DEALINGS IN THE SOFTWARE.
# #
set(OBJ_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnySceneImporter/Test/mesh.obj) if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID)
set(PLY_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/StanfordImporter/Test/common.ply) 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 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/configure.h) ${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}) target_include_directories(AnySceneImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
# On Win32 we need to avoid dllimporting AnySceneImporter symbols, because it # On Win32 we need to avoid dllimporting AnySceneImporter symbols, because it
# would search for the symbols in some DLL even when they were linked # would search for the symbols in some DLL even when they were linked

Loading…
Cancel
Save