diff --git a/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp b/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp index ec24030bc..ad6ff74a3 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp +++ b/src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp @@ -41,6 +41,8 @@ struct AnySceneImporterTest: TestSuite::Tester { void obj(); + void uppercase(); + void unknown(); /* Explicitly forbid system-wide plugin dependencies */ @@ -49,7 +51,7 @@ struct AnySceneImporterTest: TestSuite::Tester { AnySceneImporterTest::AnySceneImporterTest() { addTests({&AnySceneImporterTest::obj, - + &AnySceneImporterTest::uppercase, &AnySceneImporterTest::unknown}); /* Load the plugin directly from the build tree. Otherwise it's static and @@ -76,6 +78,19 @@ void AnySceneImporterTest::obj() { CORRADE_COMPARE(mesh->positions(0).size(), 3); } +void AnySceneImporterTest::uppercase() { + if(!(_manager.loadState("ObjImporter") & PluginManager::LoadState::Loaded)) + CORRADE_SKIP("ObjImporter plugin not enabled, cannot test"); + + Containers::Pointer importer = _manager.instantiate("AnySceneImporter"); + CORRADE_VERIFY(importer->openFile(UPPERCASE_OBJ_FILE)); + + /* Check only size, as it is good enough proof that it is working */ + Containers::Optional mesh = importer->mesh3D(0); + CORRADE_VERIFY(mesh); + CORRADE_COMPARE(mesh->positions(0).size(), 3); +} + void AnySceneImporterTest::unknown() { std::ostringstream output; Error redirectError{&output}; diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 65dfb9264..17fed4b42 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -25,8 +25,10 @@ if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) set(OBJ_FILE pointMesh.obj) + set(UPPERCASE_OBJ_FILE uppercase.OBJ) else() set(OBJ_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ObjImporter/Test/pointMesh.obj) + set(UPPERCASE_OBJ_FILE ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ObjImporter/Test/uppercase.OBJ) endif() # CMake before 3.8 has broken $ expressions for iOS (see @@ -52,7 +54,8 @@ endif() corrade_add_test(AnySceneImporterTest AnySceneImporterTest.cpp LIBRARIES MagnumTrade FILES - ../../ObjImporter/Test/pointMesh.obj) + ../../ObjImporter/Test/pointMesh.obj + ../../ObjImporter/Test/uppercase.OBJ) if(NOT BUILD_PLUGINS_STATIC) target_include_directories(AnySceneImporterTest PRIVATE $) else() diff --git a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake index 9a4bc6824..ea4a55038 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake +++ b/src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake @@ -26,3 +26,4 @@ #cmakedefine ANYSCENEIMPORTER_PLUGIN_FILENAME "${ANYSCENEIMPORTER_PLUGIN_FILENAME}" #cmakedefine OBJIMPORTER_PLUGIN_FILENAME "${OBJIMPORTER_PLUGIN_FILENAME}" #define OBJ_FILE "${OBJ_FILE}" +#define UPPERCASE_OBJ_FILE "${UPPERCASE_OBJ_FILE}" diff --git a/src/MagnumPlugins/ObjImporter/Test/uppercase.OBJ b/src/MagnumPlugins/ObjImporter/Test/uppercase.OBJ new file mode 100644 index 000000000..c5991619c --- /dev/null +++ b/src/MagnumPlugins/ObjImporter/Test/uppercase.OBJ @@ -0,0 +1,10 @@ +# Positions +v 0.5 2 3 +v 0 1.5 1 +v 2 3 5.0 + +# Points +p 1 +p 3 +p 2 +p 1