Browse Source

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.
pull/570/head
Vladimír Vondruš 4 years ago
parent
commit
b9541f7f82
  1. 9
      src/MagnumPlugins/AnyAudioImporter/Test/AnyAudioImporterTest.cpp
  2. 6
      src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt
  3. 2
      src/MagnumPlugins/AnyAudioImporter/Test/configure.h.cmake
  4. 6
      src/MagnumPlugins/AnyImageConverter/Test/AnyImageConverterTest.cpp
  5. 14
      src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt
  6. 4
      src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake
  7. 44
      src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp
  8. 12
      src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt
  9. 6
      src/MagnumPlugins/AnyImageImporter/Test/configure.h.cmake
  10. 4
      src/MagnumPlugins/AnySceneConverter/Test/AnySceneConverterTest.cpp
  11. 10
      src/MagnumPlugins/AnySceneConverter/Test/CMakeLists.txt
  12. 4
      src/MagnumPlugins/AnySceneConverter/Test/configure.h.cmake
  13. 26
      src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp
  14. 10
      src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt
  15. 4
      src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake

9
src/MagnumPlugins/AnyAudioImporter/Test/AnyAudioImporterTest.cpp

@ -30,6 +30,7 @@
#include <Corrade/Utility/ConfigurationGroup.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/FormatStl.h>
#include <Corrade/Utility/Path.h>
#include "Magnum/Audio/AbstractImporter.h"
@ -52,11 +53,11 @@ struct AnyImporterTest: TestSuite::Tester {
PluginManager::Manager<AbstractImporter> _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");
}

6
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 $<TARGET_FILE*> expressions for iOS (see
@ -53,7 +53,7 @@ file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/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}/$<CONFIG>)
if(MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC)
target_link_libraries(AnyAudioImporterTest PRIVATE AnyAudioImporter)

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

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

14
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 $<TARGET_FILE*> 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}/$<CONFIG>)
if(MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC)
target_link_libraries(AnyImageConverterTest PRIVATE AnyImageConverter)

4
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

44
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<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(data.filename);
Containers::Optional<Containers::Array<char>> 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<AbstractImporter> importer = _manager.instantiate("AnyImageImporter");
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(data.filename);
Containers::Optional<Containers::Array<char>> 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<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(data.filename);
Containers::Optional<Containers::Array<char>> 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<AbstractImporter> 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<Containers::Array<char>> read = Utility::Path::read(data.filename);
Containers::Optional<Containers::Array<char>> 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<Containers::Array<char>> read = Utility::Path::read(data.filename);
Containers::Optional<Containers::Array<char>> 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<Trade::ImageData2D> 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<Containers::Array<char>> read = Utility::Path::read(data.filename);
Containers::Optional<Containers::Array<char>> 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<char> storage;
importer->setFileCallback([](const std::string&, InputFileCallbackPolicy, Containers::Array<char>& storage) -> Containers::Optional<Containers::ArrayView<const char>> {
Containers::Optional<Containers::Array<char>> data = Utility::Path::read(TGA_FILE);
Containers::Optional<Containers::Array<char>> data = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "rgb.tga"));
CORRADE_VERIFY(data);
storage = *std::move(data);
return Containers::ArrayView<const char>{storage};

12
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 $<TARGET_FILE*> expressions for iOS (see

6
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

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

10
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 $<TARGET_FILE*> expressions for iOS (see
@ -57,7 +57,7 @@ file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/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}/$<CONFIG>)
if(MAGNUM_ANYSCENECONVERTER_BUILD_STATIC)

4
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

26
src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp

@ -68,11 +68,11 @@ struct AnySceneImporterTest: TestSuite::Tester {
PluginManager::Manager<AbstractImporter> _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<AbstractImporter> 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<AbstractImporter> 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<AbstractImporter> importer = manager.instantiate("AnySceneImporter");
{
CORRADE_VERIFY(importer->openFile(PLY_FILE));
CORRADE_VERIFY(importer->openFile(filename));
Containers::Optional<Trade::MeshData> 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<Trade::MeshData> 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<char> storage;
importer->setFileCallback([](const std::string&, InputFileCallbackPolicy, Containers::Array<char>& storage) -> Containers::Optional<Containers::ArrayView<const char>> {
Containers::Optional<Containers::Array<char>> data = Utility::Path::read(OBJ_FILE);
Containers::Optional<Containers::Array<char>> data = Utility::Path::read(Utility::Path::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj"));
CORRADE_VERIFY(data);
storage = *std::move(data);
return Containers::ArrayView<const char>{storage};

10
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 $<TARGET_FILE*> expressions for iOS (see
@ -55,7 +55,7 @@ file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/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}/$<CONFIG>)
if(MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC)

4
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

Loading…
Cancel
Save