Browse Source

AnySceneImporter: test case for uppercase extensions

pull/312/head
Max Schwarz 7 years ago
parent
commit
68a8d948c0
  1. 17
      src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp
  2. 5
      src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt
  3. 1
      src/MagnumPlugins/AnySceneImporter/Test/configure.h.cmake
  4. 10
      src/MagnumPlugins/ObjImporter/Test/uppercase.OBJ

17
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<AbstractImporter> 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<MeshData3D> mesh = importer->mesh3D(0);
CORRADE_VERIFY(mesh);
CORRADE_COMPARE(mesh->positions(0).size(), 3);
}
void AnySceneImporterTest::unknown() {
std::ostringstream output;
Error redirectError{&output};

5
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 $<TARGET_FILE*> 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 $<TARGET_FILE_DIR:AnySceneImporterTest>)
else()

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

10
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
Loading…
Cancel
Save