Browse Source

sceneconverter: generalize --info test a bit.

Preparing for different importers and info for plugins.
pull/594/head
Vladimír Vondruš 4 years ago
parent
commit
c7638f8c47
  1. 2
      src/Magnum/SceneTools/Test/CMakeLists.txt
  2. 31
      src/Magnum/SceneTools/Test/SceneConverterTest.cpp
  3. 0
      src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-data-ignored-output.txt
  4. 0
      src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-data.txt

2
src/Magnum/SceneTools/Test/CMakeLists.txt

@ -75,6 +75,8 @@ corrade_add_test(SceneToolsSceneConverterTest SceneConverterTest.cpp
SceneConverterTestFiles/images-3d.gltf SceneConverterTestFiles/images-3d.gltf
SceneConverterTestFiles/images-3d-1x1x1.bin SceneConverterTestFiles/images-3d-1x1x1.bin
SceneConverterTestFiles/images-3d-1x1x1.gltf SceneConverterTestFiles/images-3d-1x1x1.gltf
SceneConverterTestFiles/info-data.txt
SceneConverterTestFiles/info-data-ignored-output.txt
SceneConverterTestFiles/info-animations.txt SceneConverterTestFiles/info-animations.txt
SceneConverterTestFiles/info-cameras.txt SceneConverterTestFiles/info-cameras.txt
SceneConverterTestFiles/info-images.txt SceneConverterTestFiles/info-images.txt

31
src/Magnum/SceneTools/Test/SceneConverterTest.cpp

@ -99,18 +99,23 @@ const struct {
const struct { const struct {
const char* name; const char* name;
Containers::Array<Containers::String> args; Containers::Array<Containers::String> args;
const char* requiresImporter;
const char* expected; const char* expected;
} InfoData[]{ } InfoData[]{
{"", Containers::array<Containers::String>({}), {"data", Containers::array<Containers::String>({
"info.txt"}, "-I", "ObjImporter", "--info", Utility::Path::join(SCENETOOLS_TEST_DIR, "SceneConverterTestFiles/point.obj")}),
{"map", Containers::array<Containers::String>({ "ObjImporter",
"--map"}), "info-data.txt"},
{"data, map", Containers::array<Containers::String>({
"--map", "-I", "ObjImporter", "--info", Utility::Path::join(SCENETOOLS_TEST_DIR, "SceneConverterTestFiles/point.obj")}),
"ObjImporter",
/** @todo change to something else once we have a plugin that can /** @todo change to something else once we have a plugin that can
zero-copy pass the imported data */ zero-copy pass the imported data */
"info.txt"}, "info-data.txt"},
{"ignored output file", Containers::array<Containers::String>({ {"data, ignored output file", Containers::array<Containers::String>({
"whatever.ply"}), "-I", "ObjImporter", "--info", Utility::Path::join(SCENETOOLS_TEST_DIR, "SceneConverterTestFiles/point.obj"), "whatever.ply"}),
"info-ignored-output.txt"}, "ObjImporter",
"info-data-ignored-output.txt"}
}; };
const struct { const struct {
@ -1968,16 +1973,12 @@ void SceneConverterTest::info() {
/* Check if required plugins can be loaded. Catches also ABI and interface /* Check if required plugins can be loaded. Catches also ABI and interface
mismatch errors. */ mismatch errors. */
PluginManager::Manager<Trade::AbstractImporter> importerManager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR}; PluginManager::Manager<Trade::AbstractImporter> importerManager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
if(!(importerManager.load("ObjImporter") & PluginManager::LoadState::Loaded)) if(data.requiresImporter && !(importerManager.load(data.requiresImporter) & PluginManager::LoadState::Loaded))
CORRADE_SKIP("ObjImporter plugin can't be loaded."); CORRADE_SKIP(data.requiresImporter << "plugin can't be loaded.");
Containers::Array<Containers::String> args{InPlaceInit,
{"-I", "ObjImporter", "--info", Utility::Path::join(SCENETOOLS_TEST_DIR, "SceneConverterTestFiles/point.obj")}};
arrayAppend(args, data.args);
CORRADE_VERIFY(true); /* capture correct function name */ CORRADE_VERIFY(true); /* capture correct function name */
Containers::Pair<bool, Containers::String> output = call(args); Containers::Pair<bool, Containers::String> output = call(data.args);
CORRADE_COMPARE_AS(output.second(), CORRADE_COMPARE_AS(output.second(),
Utility::Path::join({SCENETOOLS_TEST_DIR, "SceneConverterTestFiles", data.expected}), Utility::Path::join({SCENETOOLS_TEST_DIR, "SceneConverterTestFiles", data.expected}),
TestSuite::Compare::StringToFile); TestSuite::Compare::StringToFile);

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-ignored-output.txt → src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-data-ignored-output.txt

0
src/Magnum/SceneTools/Test/SceneConverterTestFiles/info.txt → src/Magnum/SceneTools/Test/SceneConverterTestFiles/info-data.txt

Loading…
Cancel
Save