diff --git a/src/Magnum/SceneTools/Test/SceneConverterTest.cpp b/src/Magnum/SceneTools/Test/SceneConverterTest.cpp index dcec27dad..9e7a21dc0 100644 --- a/src/Magnum/SceneTools/Test/SceneConverterTest.cpp +++ b/src/Magnum/SceneTools/Test/SceneConverterTest.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -775,24 +776,15 @@ SceneConverterTest::SceneConverterTest() { namespace { #ifdef SCENECONVERTER_EXECUTABLE_FILENAME -/** @todo take a StringIterable once it exists */ -Containers::Pair call(Containers::ArrayView arguments) { - /* Create a string view array for the arguments, implicitly pass the - application name and plugin directory override */ - /** @todo drop once StringIterable exists */ - Containers::Array argumentViews{ValueInit, arguments.size() + 3}; - argumentViews[0] = ""_s; - argumentViews[1] = "--plugin-dir"_s; - argumentViews[2] = MAGNUM_PLUGINS_INSTALL_DIR; - for(std::size_t i = 0; i != arguments.size(); ++i) - argumentViews[i + 3] = arguments[i]; - +Containers::Pair call(const Containers::StringIterable& arguments) { const Containers::String outputFilename = Utility::Path::join(SCENETOOLS_TEST_OUTPUT_DIR, "SceneConverterTestFiles/output.txt"); /** @todo clean up once Utility::System::execute() with output redirection exists */ - const bool success = std::system(Utility::format("{} {} > {} 2>&1", + /* Implicitly pass the plugin directory override */ + const bool success = std::system(Utility::format("{} --plugin-dir {} {} > {} 2>&1", SCENECONVERTER_EXECUTABLE_FILENAME, - " "_s.join(argumentViews), /** @todo handle space escaping here? */ + MAGNUM_PLUGINS_INSTALL_DIR, + " "_s.join(arguments), /** @todo handle space escaping here? */ outputFilename ).data()) == 0; diff --git a/src/Magnum/Trade/Test/ImageConverterTest.cpp b/src/Magnum/Trade/Test/ImageConverterTest.cpp index 56aa7be8b..715ca7016 100644 --- a/src/Magnum/Trade/Test/ImageConverterTest.cpp +++ b/src/Magnum/Trade/Test/ImageConverterTest.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -100,24 +101,15 @@ ImageConverterTest::ImageConverterTest() { namespace { #ifdef IMAGECONVERTER_EXECUTABLE_FILENAME -/** @todo take a StringIterable once it exists */ -Containers::Pair call(Containers::ArrayView arguments) { - /* Create a string view array for the arguments, implicitly pass the - application name and plugin directory override */ - /** @todo drop once StringIterable exists */ - Containers::Array argumentViews{ValueInit, arguments.size() + 3}; - argumentViews[0] = ""_s; - argumentViews[1] = "--plugin-dir"_s; - argumentViews[2] = MAGNUM_PLUGINS_INSTALL_DIR; - for(std::size_t i = 0; i != arguments.size(); ++i) - argumentViews[i + 3] = arguments[i]; - +Containers::Pair call(const Containers::StringIterable& arguments) { const Containers::String outputFilename = Utility::Path::join(TRADE_TEST_OUTPUT_DIR, "ImageConverterTestFiles/output.txt"); /** @todo clean up once Utility::System::execute() with output redirection exists */ - const bool success = std::system(Utility::format("{} {} > {} 2>&1", + /* Implicitly pass the plugin directory override */ + const bool success = std::system(Utility::format("{} --plugin-dir {} {} > {} 2>&1", IMAGECONVERTER_EXECUTABLE_FILENAME, - " "_s.join(argumentViews), /** @todo handle space escaping here? */ + MAGNUM_PLUGINS_INSTALL_DIR, + " "_s.join(arguments), /** @todo handle space escaping here? */ outputFilename ).data()) == 0;