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

9
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

10
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() {

2
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}"

19
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

15
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

Loading…
Cancel
Save