From 6439cfac105539b8d9a4a429910e1786278848e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 4 Jul 2022 11:12:45 +0200 Subject: [PATCH] ObjImporter: test also when the first entry in the file is an index. That's the last important uncovered bit in the code. --- .../ObjImporter/Test/CMakeLists.txt | 1 + .../ObjImporter/Test/ObjImporterTest.cpp | 21 +++++++++++++++---- .../mesh-named-first-unnamed-index-first.obj | 3 +++ 3 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 src/MagnumPlugins/ObjImporter/Test/mesh-named-first-unnamed-index-first.obj diff --git a/src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt b/src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt index 6dc2f46a9..880f94c1c 100644 --- a/src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt @@ -57,6 +57,7 @@ corrade_add_test(ObjImporterTest ObjImporterTest.cpp mesh-ignored-keyword.obj mesh-multiple.obj mesh-named-first-unnamed.obj + mesh-named-first-unnamed-index-first.obj mesh-named.obj mesh-normals.obj mesh-positions-optional-coordinate.obj diff --git a/src/MagnumPlugins/ObjImporter/Test/ObjImporterTest.cpp b/src/MagnumPlugins/ObjImporter/Test/ObjImporterTest.cpp index e2610b3cf..925bfbdca 100644 --- a/src/MagnumPlugins/ObjImporter/Test/ObjImporterTest.cpp +++ b/src/MagnumPlugins/ObjImporter/Test/ObjImporterTest.cpp @@ -84,6 +84,14 @@ struct ObjImporterTest: TestSuite::Tester { PluginManager::Manager _manager{"nonexistent"}; }; +const struct { + const char* name; + const char* filename; +} MeshNamedFirstUnnamedData[]{ + {"", "mesh-named-first-unnamed.obj"}, + {"index first", "mesh-named-first-unnamed-index-first.obj"}, +}; + const struct { const char* name; const char* filename; @@ -174,10 +182,12 @@ ObjImporterTest::ObjImporterTest() { &ObjImporterTest::meshIgnoredKeyword, - &ObjImporterTest::meshNamed, - &ObjImporterTest::meshNamedFirstUnnamed, + &ObjImporterTest::meshNamed}); - &ObjImporterTest::moreMeshes}); + addInstancedTests({&ObjImporterTest::meshNamedFirstUnnamed}, + Containers::arraySize(MeshNamedFirstUnnamedData)); + + addTests({&ObjImporterTest::moreMeshes}); addInstancedTests({&ObjImporterTest::invalid}, Containers::arraySize(InvalidData)); @@ -451,8 +461,11 @@ void ObjImporterTest::meshNamed() { } void ObjImporterTest::meshNamedFirstUnnamed() { + auto&& data = MeshNamedFirstUnnamedData[testCaseInstanceId()]; + setTestCaseDescription(data.name); + Containers::Pointer importer = _manager.instantiate("ObjImporter"); - CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "mesh-named-first-unnamed.obj"))); + CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, data.filename))); CORRADE_COMPARE(importer->meshCount(), 2); CORRADE_COMPARE(importer->meshName(0), ""); diff --git a/src/MagnumPlugins/ObjImporter/Test/mesh-named-first-unnamed-index-first.obj b/src/MagnumPlugins/ObjImporter/Test/mesh-named-first-unnamed-index-first.obj new file mode 100644 index 000000000..89a8ea72d --- /dev/null +++ b/src/MagnumPlugins/ObjImporter/Test/mesh-named-first-unnamed-index-first.obj @@ -0,0 +1,3 @@ +p 1 +v 1 2 3 +o SecondMesh