Browse Source

Trade: port plugin tests to the new Utility::Path.

Since the plugin implementations rely on the base plugin interfaces for
file handling, this affected only the tests. Also took this as an
opportunity to use the new TestSuite::Compare::StringHasPrefix etc. in
various places.
pull/556/head
Vladimír Vondruš 4 years ago
parent
commit
f9ae3166a9
  1. 368
      src/MagnumPlugins/AnyImageConverter/Test/AnyImageConverterTest.cpp
  2. 73
      src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp
  3. 20
      src/MagnumPlugins/AnySceneConverter/Test/AnySceneConverterTest.cpp
  4. 8
      src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp
  5. 90
      src/MagnumPlugins/ObjImporter/Test/ObjImporterTest.cpp
  6. 2
      src/MagnumPlugins/TgaImageConverter/Test/TgaImageConverterTest.cpp
  7. 10
      src/MagnumPlugins/TgaImporter/Test/TgaImporterTest.cpp

368
src/MagnumPlugins/AnyImageConverter/Test/AnyImageConverterTest.cpp

@ -25,14 +25,15 @@
#include <sstream>
#include <thread> /* std::thread::hardware_concurrency(), sigh */
#include <Corrade/Containers/StringStl.h>
#include <Corrade/Containers/Optional.h>
#include <Corrade/PluginManager/Manager.h>
#include <Corrade/TestSuite/Tester.h>
#include <Corrade/TestSuite/Compare/File.h>
#include <Corrade/TestSuite/Compare/String.h>
#include <Corrade/Utility/ConfigurationGroup.h>
#include <Corrade/Utility/Directory.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/FormatStl.h>
#include <Corrade/Utility/Path.h>
#include "Magnum/ImageView.h"
#include "Magnum/PixelFormat.h"
@ -387,9 +388,11 @@ AnyImageConverterTest::AnyImageConverterTest() {
#endif
/* Create the output directory if it doesn't exist yet */
CORRADE_INTERNAL_ASSERT_OUTPUT(Utility::Directory::mkpath(ANYIMAGECONVERTER_TEST_OUTPUT_DIR));
CORRADE_INTERNAL_ASSERT_OUTPUT(Utility::Path::make(ANYIMAGECONVERTER_TEST_OUTPUT_DIR));
}
using namespace Containers::Literals;
/* 2*3*2 RGB pixels with four-byte row padding, or 3 16-byte blocks */
constexpr const char Data[] = {
1, 2, 3, 2, 3, 4, 0, 0,
@ -433,10 +436,9 @@ void AnyImageConverterTest::convert1D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "1d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "1d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
CORRADE_VERIFY(converter->convertToFile(Image1D, filename));
@ -450,15 +452,14 @@ void AnyImageConverterTest::convert2D() {
if(!(_manager.loadState("TgaImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("TgaImageConverter plugin not enabled, cannot test");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "2d.tga");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "2d.tga");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = _manager.instantiate("AnyImageConverter");
CORRADE_VERIFY(converter->convertToFile(Image2D, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::convert3D() {
@ -471,10 +472,9 @@ void AnyImageConverterTest::convert3D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "3d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "3d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
CORRADE_VERIFY(converter->convertToFile(Image3D, filename));
@ -494,15 +494,14 @@ void AnyImageConverterTest::convertCompressed1D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-1d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-1d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
CORRADE_VERIFY(converter->convertToFile(CompressedImage1D, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::convertCompressed2D() {
@ -515,15 +514,14 @@ void AnyImageConverterTest::convertCompressed2D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-2d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-2d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
CORRADE_VERIFY(converter->convertToFile(CompressedImage2D, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::convertCompressed3D() {
@ -536,15 +534,14 @@ void AnyImageConverterTest::convertCompressed3D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-3d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-3d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
CORRADE_VERIFY(converter->convertToFile(CompressedImage3D, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::convertLevels1D() {
@ -557,17 +554,16 @@ void AnyImageConverterTest::convertLevels1D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "levels-1d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "levels-1d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image1D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::convertLevels2D() {
@ -580,17 +576,16 @@ void AnyImageConverterTest::convertLevels2D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "levels-2d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "levels-2d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image2D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::convertLevels3D() {
@ -603,17 +598,16 @@ void AnyImageConverterTest::convertLevels3D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "levels-3d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "levels-3d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image3D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::convertCompressedLevels1D() {
@ -626,17 +620,16 @@ void AnyImageConverterTest::convertCompressedLevels1D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-levels-1d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-levels-1d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({CompressedImage1D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::convertCompressedLevels2D() {
@ -649,17 +642,16 @@ void AnyImageConverterTest::convertCompressedLevels2D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-levels-2d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-levels-2d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({CompressedImage2D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::convertCompressedLevels3D() {
@ -672,17 +664,16 @@ void AnyImageConverterTest::convertCompressedLevels3D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-levels-3d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-levels-3d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({CompressedImage3D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
void AnyImageConverterTest::detect1D() {
@ -1071,10 +1062,9 @@ void AnyImageConverterTest::propagateFlags2D() {
if(!(_manager.loadState("TgaImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("TgaImageConverter plugin not enabled, cannot test");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "output.tga");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "output.tga");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
/* Just test that the exported file exists */
Containers::Pointer<AbstractImageConverter> converter = _manager.instantiate("AnyImageConverter");
@ -1084,7 +1074,7 @@ void AnyImageConverterTest::propagateFlags2D() {
Debug redirectOutput{&out};
CORRADE_VERIFY(converter->convertToFile(Image2D, filename));
}
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
CORRADE_COMPARE(out.str(),
"Trade::AnyImageConverter::convertToFile(): using TgaImageConverter\n"
"Trade::TgaImageConverter::convertToData(): converting from RGB to BGR\n");
@ -1100,10 +1090,9 @@ void AnyImageConverterTest::propagateFlags3D() {
if(!(manager.load("OpenExrImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("OpenExrImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "cube.exr");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "cube.exr");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("envmap", "cube");
@ -1115,8 +1104,8 @@ void AnyImageConverterTest::propagateFlags3D() {
converter->configuration().setValue("threads", 0);
CORRADE_VERIFY(converter->convertToFile(ImageCube, filename));
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
converter->setFlags(ImageConverterFlag::Verbose);
std::ostringstream out;
@ -1124,7 +1113,7 @@ void AnyImageConverterTest::propagateFlags3D() {
Debug redirectOutput{&out};
CORRADE_VERIFY(converter->convertToFile(ImageCube, filename));
}
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
CORRADE_COMPARE(out.str(), Utility::formatString(
"Trade::AnyImageConverter::convertToFile(): using OpenExrImageConverter\n"
"Trade::OpenExrImageConverter::convertToData(): autodetected hardware concurrency to {} threads\n",
@ -1157,10 +1146,9 @@ void AnyImageConverterTest::propagateFlagsLevels2D() {
if(!(manager.load("OpenExrImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("OpenExrImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "output.exr");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "output.exr");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
/* This will make the verbose output print the detected hardware thread
@ -1171,8 +1159,8 @@ void AnyImageConverterTest::propagateFlagsLevels2D() {
converter->configuration().setValue("threads", 0);
CORRADE_VERIFY(converter->convertToFile({Image2DFloat}, filename));
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
converter->setFlags(ImageConverterFlag::Verbose);
std::ostringstream out;
@ -1182,7 +1170,7 @@ void AnyImageConverterTest::propagateFlagsLevels2D() {
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image2DFloat}, filename));
}
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
CORRADE_COMPARE(out.str(), Utility::formatString(
"Trade::AnyImageConverter::convertToFile(): using OpenExrImageConverter\n"
"Trade::OpenExrImageConverter::convertToData(): autodetected hardware concurrency to {} threads\n",
@ -1199,10 +1187,9 @@ void AnyImageConverterTest::propagateFlagsLevels3D() {
if(!(manager.load("OpenExrImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("OpenExrImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "cube.exr");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "cube.exr");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("envmap", "cube");
@ -1214,8 +1201,8 @@ void AnyImageConverterTest::propagateFlagsLevels3D() {
converter->configuration().setValue("threads", 0);
CORRADE_VERIFY(converter->convertToFile({ImageCube}, filename));
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
converter->setFlags(ImageConverterFlag::Verbose);
std::ostringstream out;
@ -1225,7 +1212,7 @@ void AnyImageConverterTest::propagateFlagsLevels3D() {
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({ImageCube}, filename));
}
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
CORRADE_COMPARE(out.str(), Utility::formatString(
"Trade::AnyImageConverter::convertToFile(): using OpenExrImageConverter\n"
"Trade::OpenExrImageConverter::convertToData(): autodetected hardware concurrency to {} threads\n",
@ -1254,17 +1241,19 @@ void AnyImageConverterTest::propagateConfiguration1D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-1d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-1d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
CORRADE_VERIFY(converter->convertToFile(Image1D, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfiguration2D() {
@ -1277,10 +1266,9 @@ void AnyImageConverterTest::propagateConfiguration2D() {
if(!(manager.load("OpenExrImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("OpenExrImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "depth32f-custom-channels.exr");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "depth32f-custom-channels.exr");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("layer", "left");
@ -1302,17 +1290,19 @@ void AnyImageConverterTest::propagateConfiguration3D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-3d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-3d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
CORRADE_VERIFY(converter->convertToFile(Image3D, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationUnknown1D() {
@ -1330,7 +1320,7 @@ void AnyImageConverterTest::propagateConfigurationUnknown1D() {
std::ostringstream out;
Warning redirectWarning{&out};
CORRADE_VERIFY(converter->convertToFile(Image1D, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "1d.ktx2")));
CORRADE_VERIFY(converter->convertToFile(Image1D, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "1d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1343,7 +1333,7 @@ void AnyImageConverterTest::propagateConfigurationUnknown2D() {
std::ostringstream out;
Warning redirectWarning{&out};
CORRADE_VERIFY(converter->convertToFile(Image2D, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "2d.tga")));
CORRADE_VERIFY(converter->convertToFile(Image2D, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "2d.tga")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by TgaImageConverter\n");
}
@ -1362,7 +1352,7 @@ void AnyImageConverterTest::propagateConfigurationUnknown3D() {
std::ostringstream out;
Warning redirectWarning{&out};
CORRADE_VERIFY(converter->convertToFile(Image3D, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "3d.ktx2")));
CORRADE_VERIFY(converter->convertToFile(Image3D, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "3d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1376,17 +1366,19 @@ void AnyImageConverterTest::propagateConfigurationCompressed1D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-1d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-1d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
CORRADE_VERIFY(converter->convertToFile(CompressedImage1D, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationCompressed2D() {
@ -1399,17 +1391,19 @@ void AnyImageConverterTest::propagateConfigurationCompressed2D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-2d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-2d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
CORRADE_VERIFY(converter->convertToFile(CompressedImage2D, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationCompressed3D() {
@ -1422,17 +1416,19 @@ void AnyImageConverterTest::propagateConfigurationCompressed3D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-3d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-3d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
CORRADE_VERIFY(converter->convertToFile(CompressedImage3D, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationCompressedUnknown1D() {
@ -1450,7 +1446,7 @@ void AnyImageConverterTest::propagateConfigurationCompressedUnknown1D() {
std::ostringstream out;
Warning redirectWarning{&out};
CORRADE_VERIFY(converter->convertToFile(CompressedImage1D, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-1d.ktx2")));
CORRADE_VERIFY(converter->convertToFile(CompressedImage1D, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-1d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1469,7 +1465,7 @@ void AnyImageConverterTest::propagateConfigurationCompressedUnknown2D() {
std::ostringstream out;
Warning redirectWarning{&out};
CORRADE_VERIFY(converter->convertToFile(CompressedImage2D, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-2d.ktx2")));
CORRADE_VERIFY(converter->convertToFile(CompressedImage2D, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-2d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1488,7 +1484,7 @@ void AnyImageConverterTest::propagateConfigurationCompressedUnknown3D() {
std::ostringstream out;
Warning redirectWarning{&out};
CORRADE_VERIFY(converter->convertToFile(CompressedImage3D, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-3d.ktx2")));
CORRADE_VERIFY(converter->convertToFile(CompressedImage3D, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-3d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1502,19 +1498,21 @@ void AnyImageConverterTest::propagateConfigurationLevels1D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-1d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-1d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image1D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationLevels2D() {
@ -1527,19 +1525,21 @@ void AnyImageConverterTest::propagateConfigurationLevels2D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-2d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-2d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image2D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationLevels3D() {
@ -1552,19 +1552,21 @@ void AnyImageConverterTest::propagateConfigurationLevels3D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-3d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "custom-writer-3d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image3D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationUnknownLevels1D() {
@ -1584,7 +1586,7 @@ void AnyImageConverterTest::propagateConfigurationUnknownLevels1D() {
Warning redirectWarning{&out};
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image1D}, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "1d.ktx2")));
CORRADE_VERIFY(converter->convertToFile({Image1D}, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "1d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1605,7 +1607,7 @@ void AnyImageConverterTest::propagateConfigurationUnknownLevels2D() {
Warning redirectWarning{&out};
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image2D}, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "2d.ktx2")));
CORRADE_VERIFY(converter->convertToFile({Image2D}, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "2d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1626,7 +1628,7 @@ void AnyImageConverterTest::propagateConfigurationUnknownLevels3D() {
Warning redirectWarning{&out};
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({Image3D}, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "3d.ktx2")));
CORRADE_VERIFY(converter->convertToFile({Image3D}, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "3d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1640,19 +1642,21 @@ void AnyImageConverterTest::propagateConfigurationCompressedLevels1D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-1d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-1d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({CompressedImage1D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationCompressedLevels2D() {
@ -1665,19 +1669,21 @@ void AnyImageConverterTest::propagateConfigurationCompressedLevels2D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-2d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-custom-writer-2d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({CompressedImage2D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationCompressedLevels3D() {
@ -1690,19 +1696,21 @@ void AnyImageConverterTest::propagateConfigurationCompressedLevels3D() {
if(!(manager.load("KtxImageConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImageConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compresed-custom-writer-3d.ktx2");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compresed-custom-writer-3d.ktx2");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
converter->configuration().setValue("writerName", "Yello this did Magnum!");
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({CompressedImage3D}, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
/** @todo clean up once Directory::readString() returns our String */
CORRADE_VERIFY(Containers::StringView{Containers::ArrayView<const char>(Utility::Directory::read(filename))}.contains("KTXwriter\0Yello this did Magnum!"));
Containers::Optional<Containers::String> output = Utility::Path::readString(filename);
CORRADE_VERIFY(output);
CORRADE_COMPARE_AS(*output,
"KTXwriter\0Yello this did Magnum!"_s,
TestSuite::Compare::StringContains);
}
void AnyImageConverterTest::propagateConfigurationCompressedUnknownLevels1D() {
@ -1722,7 +1730,7 @@ void AnyImageConverterTest::propagateConfigurationCompressedUnknownLevels1D() {
Warning redirectWarning{&out};
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({CompressedImage1D}, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-1d.ktx2")));
CORRADE_VERIFY(converter->convertToFile({CompressedImage1D}, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-1d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1743,7 +1751,7 @@ void AnyImageConverterTest::propagateConfigurationCompressedUnknownLevels2D() {
Warning redirectWarning{&out};
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({CompressedImage2D}, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-2d.ktx2")));
CORRADE_VERIFY(converter->convertToFile({CompressedImage2D}, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-2d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}
@ -1764,7 +1772,7 @@ void AnyImageConverterTest::propagateConfigurationCompressedUnknownLevels3D() {
Warning redirectWarning{&out};
/* Using the list API even though there's just one image, which should
still trigger the correct code path for AnyImageConverter. */
CORRADE_VERIFY(converter->convertToFile({CompressedImage3D}, Utility::Directory::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-3d.ktx2")));
CORRADE_VERIFY(converter->convertToFile({CompressedImage3D}, Utility::Path::join(ANYIMAGECONVERTER_TEST_OUTPUT_DIR, "compressed-3d.ktx2")));
CORRADE_COMPARE(out.str(), "Trade::AnyImageConverter::convertToFile(): option noSuchOption not recognized by KtxImageConverter\n");
}

73
src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp

@ -30,9 +30,9 @@
#include <Corrade/PluginManager/Manager.h>
#include <Corrade/TestSuite/Tester.h>
#include <Corrade/Utility/ConfigurationGroup.h>
#include <Corrade/Utility/Directory.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/FormatStl.h>
#include <Corrade/Utility/Path.h>
#include "Magnum/ImageView.h"
#include "Magnum/DebugTools/CompareImage.h"
@ -211,10 +211,11 @@ void AnyImageImporterTest::load1D() {
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
if(data.asData)
CORRADE_VERIFY(importer->openData(Utility::Directory::read(data.filename)));
else
CORRADE_VERIFY(importer->openFile(data.filename));
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(data.filename);
CORRADE_VERIFY(read);
CORRADE_VERIFY(importer->openData(*read));
} else CORRADE_VERIFY(importer->openFile(data.filename));
CORRADE_COMPARE(importer->image1DCount(), 1);
/* Check only size, as it is good enough proof that it is working */
@ -232,10 +233,11 @@ void AnyImageImporterTest::load2D() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("AnyImageImporter");
if(data.asData)
CORRADE_VERIFY(importer->openData(Utility::Directory::read(data.filename)));
else
CORRADE_VERIFY(importer->openFile(data.filename));
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(data.filename);
CORRADE_VERIFY(read);
CORRADE_VERIFY(importer->openData(*read));
} else CORRADE_VERIFY(importer->openFile(data.filename));
CORRADE_COMPARE(importer->image2DCount(), 1);
/* Check only size, as it is good enough proof that it is working */
@ -262,10 +264,11 @@ void AnyImageImporterTest::load3D() {
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
if(data.asData)
CORRADE_VERIFY(importer->openData(Utility::Directory::read(data.filename)));
else
CORRADE_VERIFY(importer->openFile(data.filename));
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(data.filename);
CORRADE_VERIFY(read);
CORRADE_VERIFY(importer->openData(*read));
} else CORRADE_VERIFY(importer->openFile(data.filename));
CORRADE_COMPARE(importer->image3DCount(), 1);
/* Check only size, as it is good enough proof that it is working */
@ -279,14 +282,15 @@ void AnyImageImporterTest::detect() {
setTestCaseDescription(data.name);
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("AnyImageImporter");
const std::string filename = Utility::Directory::join(TEST_FILE_DIR, data.filename);
Containers::String filename = Utility::Path::join(TEST_FILE_DIR, data.filename);
std::ostringstream out;
Error redirectError{&out};
if(data.asData)
CORRADE_VERIFY(!importer->openData(Utility::Directory::read(filename)));
else
CORRADE_VERIFY(!importer->openFile(filename));
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(filename);
CORRADE_VERIFY(read);
CORRADE_VERIFY(!importer->openData(*read));
} else CORRADE_VERIFY(!importer->openFile(filename));
/* Can't use raw string literals in macros on GCC 4.8 */
#ifndef CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT
CORRADE_COMPARE(out.str(), Utility::formatString(
@ -343,10 +347,11 @@ void AnyImageImporterTest::propagateFlags() {
std::ostringstream out;
{
Debug redirectOutput{&out};
if(data.asData)
CORRADE_VERIFY(importer->openData(Utility::Directory::read(data.filename)));
else
CORRADE_VERIFY(importer->openFile(data.filename));
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(data.filename);
CORRADE_VERIFY(read);
CORRADE_VERIFY(importer->openData(*read));
} else CORRADE_VERIFY(importer->openFile(data.filename));
CORRADE_VERIFY(importer->image2D(0));
}
CORRADE_COMPARE(out.str(), Utility::formatString(
@ -372,10 +377,11 @@ void AnyImageImporterTest::propagateConfiguration() {
importer->configuration().setValue("layer", "left");
importer->configuration().setValue("depth", "height");
if(data.asData)
CORRADE_VERIFY(importer->openData(Utility::Directory::read(data.filename)));
else
CORRADE_VERIFY(importer->openFile(data.filename));
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(data.filename);
CORRADE_VERIFY(read);
CORRADE_VERIFY(importer->openData(*read));
} else CORRADE_VERIFY(importer->openFile(data.filename));
Containers::Optional<Trade::ImageData2D> image = importer->image2D(0);
CORRADE_VERIFY(image);
@ -401,10 +407,11 @@ void AnyImageImporterTest::propagateConfigurationUnknown() {
std::ostringstream out;
Warning redirectWarning{&out};
if(data.asData)
CORRADE_VERIFY(importer->openData(Utility::Directory::read(data.filename)));
else
CORRADE_VERIFY(importer->openFile(data.filename));
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(data.filename);
CORRADE_VERIFY(read);
CORRADE_VERIFY(importer->openData(*read));
} else CORRADE_VERIFY(importer->openFile(data.filename));
CORRADE_COMPARE(out.str(), Utility::formatString("Trade::AnyImageImporter::{}(): option noSuchOption not recognized by TgaImporter\n", data.messageFunctionName));
}
@ -416,10 +423,14 @@ void AnyImageImporterTest::propagateFileCallback() {
Containers::Array<char> storage;
importer->setFileCallback([](const std::string&, InputFileCallbackPolicy, Containers::Array<char>& storage) -> Containers::Optional<Containers::ArrayView<const char>> {
storage = Utility::Directory::read(TGA_FILE);
Containers::Optional<Containers::Array<char>> data = Utility::Path::read(TGA_FILE);
CORRADE_VERIFY(data);
storage = *std::move(data);
return Containers::ArrayView<const char>{storage};
}, storage);
CORRADE_VERIFY(true); /* Capture correct function name first */
CORRADE_VERIFY(importer->openFile("you-know-where-the-file-is.tga"));
CORRADE_COMPARE(importer->image2DCount(), 1);

20
src/MagnumPlugins/AnySceneConverter/Test/AnySceneConverterTest.cpp

@ -25,14 +25,13 @@
#include <sstream>
#include <Corrade/Containers/StringView.h>
#include <Corrade/Containers/StringStl.h>
#include <Corrade/PluginManager/Manager.h>
#include <Corrade/TestSuite/Tester.h>
#include <Corrade/TestSuite/Compare/File.h>
#include <Corrade/Utility/ConfigurationGroup.h>
#include <Corrade/Utility/Directory.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/FormatStl.h>
#include <Corrade/Utility/Path.h>
#include "Magnum/Math/Vector3.h"
#include "Magnum/Trade/AbstractSceneConverter.h"
@ -88,7 +87,7 @@ AnySceneConverterTest::AnySceneConverterTest() {
#endif
/* Create the output directory if it doesn't exist yet */
CORRADE_INTERNAL_ASSERT_OUTPUT(Utility::Directory::mkpath(ANYSCENECONVERTER_TEST_OUTPUT_DIR));
CORRADE_INTERNAL_ASSERT_OUTPUT(Utility::Path::make(ANYSCENECONVERTER_TEST_OUTPUT_DIR));
}
void AnySceneConverterTest::convert() {
@ -101,10 +100,9 @@ void AnySceneConverterTest::convert() {
if(!(manager.load("StanfordSceneConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("StanfordSceneConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYSCENECONVERTER_TEST_OUTPUT_DIR, "file.ply");
if(Utility::Directory::exists(filename))
CORRADE_VERIFY(Utility::Directory::rm(filename));
Containers::String filename = Utility::Path::join(ANYSCENECONVERTER_TEST_OUTPUT_DIR, "file.ply");
if(Utility::Path::exists(filename))
CORRADE_VERIFY(Utility::Path::remove(filename));
const Vector3 positions[] {
{-0.5f, -0.5f, 0.0f},
@ -161,7 +159,7 @@ void AnySceneConverterTest::propagateFlags() {
if(!(manager.load("StanfordSceneConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("StanfordSceneConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYSCENECONVERTER_TEST_OUTPUT_DIR, "file.ply");
Containers::String filename = Utility::Path::join(ANYSCENECONVERTER_TEST_OUTPUT_DIR, "file.ply");
const Vector3 positions[] {
{-0.5f, -0.5f, 0.0f},
@ -179,7 +177,7 @@ void AnySceneConverterTest::propagateFlags() {
{
Debug redirectOutput{&out};
CORRADE_VERIFY(converter->convertToFile(mesh, filename));
CORRADE_VERIFY(Utility::Directory::exists(filename));
CORRADE_VERIFY(Utility::Path::exists(filename));
}
CORRADE_COMPARE(out.str(),
"Trade::AnySceneConverter::convertToFile(): using StanfordSceneConverter\n");
@ -199,7 +197,7 @@ void AnySceneConverterTest::propagateConfiguration() {
if(!(manager.load("StanfordSceneConverter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("StanfordSceneConverter plugin can't be loaded.");
const std::string filename = Utility::Directory::join(ANYSCENECONVERTER_TEST_OUTPUT_DIR, "file.ply");
Containers::String filename = Utility::Path::join(ANYSCENECONVERTER_TEST_OUTPUT_DIR, "file.ply");
const struct Data {
Vector3 position;
@ -246,7 +244,7 @@ void AnySceneConverterTest::propagateConfigurationUnknown() {
std::ostringstream out;
Warning redirectWarning{&out};
CORRADE_VERIFY(converter->convertToFile(mesh, Utility::Directory::join(ANYSCENECONVERTER_TEST_OUTPUT_DIR, "file.ply")));
CORRADE_VERIFY(converter->convertToFile(mesh, Utility::Path::join(ANYSCENECONVERTER_TEST_OUTPUT_DIR, "file.ply")));
CORRADE_COMPARE(out.str(), "Trade::AnySceneConverter::convertToFile(): option noSuchOption not recognized by StanfordSceneConverter\n");
}

8
src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp

@ -30,8 +30,8 @@
#include <Corrade/TestSuite/Tester.h>
#include <Corrade/Utility/ConfigurationGroup.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/Directory.h>
#include <Corrade/Utility/FormatStl.h>
#include <Corrade/Utility/Path.h>
#include "Magnum/Math/Vector3.h"
#include "Magnum/Trade/AbstractImporter.h"
@ -282,10 +282,14 @@ void AnySceneImporterTest::propagateFileCallback() {
Containers::Array<char> storage;
importer->setFileCallback([](const std::string&, InputFileCallbackPolicy, Containers::Array<char>& storage) -> Containers::Optional<Containers::ArrayView<const char>> {
storage = Utility::Directory::read(OBJ_FILE);
Containers::Optional<Containers::Array<char>> data = Utility::Path::read(OBJ_FILE);
CORRADE_VERIFY(data);
storage = *std::move(data);
return Containers::ArrayView<const char>{storage};
}, storage);
CORRADE_VERIFY(true); /* Capture correct function name first */
CORRADE_VERIFY(importer->openFile("you-know-where-the-file-is.obj"));
CORRADE_COMPARE(importer->meshCount(), 1);

90
src/MagnumPlugins/ObjImporter/Test/ObjImporterTest.cpp

@ -25,10 +25,12 @@
#include <sstream>
#include <Corrade/Containers/Optional.h>
#include <Corrade/Containers/String.h>
#include <Corrade/Containers/StringStl.h> /** @todo remove once AbstractImporter is <string>-free */
#include <Corrade/TestSuite/Tester.h>
#include <Corrade/TestSuite/Compare/Container.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/Directory.h>
#include <Corrade/Utility/Path.h>
#include "Magnum/Mesh.h"
#include "Magnum/Math/Vector3.h"
@ -160,7 +162,7 @@ ObjImporterTest::ObjImporterTest() {
void ObjImporterTest::pointMesh() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
const Containers::Optional<MeshData> data = importer->mesh(0);
@ -184,7 +186,7 @@ void ObjImporterTest::pointMesh() {
void ObjImporterTest::lineMesh() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "lineMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "lineMesh.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
const Containers::Optional<MeshData> data = importer->mesh(0);
@ -206,7 +208,7 @@ void ObjImporterTest::lineMesh() {
void ObjImporterTest::triangleMesh() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "triangleMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "triangleMesh.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
const Containers::Optional<MeshData> data = importer->mesh(0);
@ -229,7 +231,7 @@ void ObjImporterTest::triangleMesh() {
void ObjImporterTest::mixedPrimitives() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "mixedPrimitives.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "mixedPrimitives.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
std::ostringstream out;
@ -240,7 +242,7 @@ void ObjImporterTest::mixedPrimitives() {
void ObjImporterTest::positionsOnly() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "triangleMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "triangleMesh.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
const Containers::Optional<MeshData> data = importer->mesh(0);
@ -251,7 +253,7 @@ void ObjImporterTest::positionsOnly() {
void ObjImporterTest::textureCoordinates() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "textureCoordinates.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "textureCoordinates.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
const Containers::Optional<MeshData> data = importer->mesh(0);
@ -281,7 +283,7 @@ void ObjImporterTest::textureCoordinates() {
void ObjImporterTest::normals() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "normals.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "normals.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
const Containers::Optional<MeshData> data = importer->mesh(0);
@ -311,7 +313,7 @@ void ObjImporterTest::normals() {
void ObjImporterTest::textureCoordinatesNormals() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "textureCoordinatesNormals.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "textureCoordinatesNormals.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
const Containers::Optional<MeshData> data = importer->mesh(0);
@ -351,13 +353,13 @@ void ObjImporterTest::textureCoordinatesNormals() {
void ObjImporterTest::emptyFile() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "emptyFile.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "emptyFile.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
}
void ObjImporterTest::unnamedMesh() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "emptyFile.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "emptyFile.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
CORRADE_COMPARE(importer->meshName(0), "");
CORRADE_COMPARE(importer->meshForName(""), -1);
@ -365,7 +367,7 @@ void ObjImporterTest::unnamedMesh() {
void ObjImporterTest::namedMesh() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "namedMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "namedMesh.obj")));
CORRADE_COMPARE(importer->meshCount(), 1);
CORRADE_COMPARE(importer->meshName(0), "MyMesh");
CORRADE_COMPARE(importer->meshForName("MyMesh"), 0);
@ -373,7 +375,7 @@ void ObjImporterTest::namedMesh() {
void ObjImporterTest::moreMeshes() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "moreMeshes.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "moreMeshes.obj")));
CORRADE_COMPARE(importer->meshCount(), 3);
CORRADE_COMPARE(importer->meshName(0), "PointMesh");
@ -453,7 +455,7 @@ void ObjImporterTest::moreMeshes() {
void ObjImporterTest::unnamedFirstMesh() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "unnamedFirstMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "unnamedFirstMesh.obj")));
CORRADE_COMPARE(importer->meshCount(), 2);
CORRADE_COMPARE(importer->meshName(0), "");
@ -465,7 +467,7 @@ void ObjImporterTest::unnamedFirstMesh() {
void ObjImporterTest::wrongFloat() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
const Int id = importer->meshForName("WrongFloat");
CORRADE_VERIFY(id > -1);
@ -477,7 +479,7 @@ void ObjImporterTest::wrongFloat() {
void ObjImporterTest::wrongInteger() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
const Int id = importer->meshForName("WrongInteger");
CORRADE_VERIFY(id > -1);
@ -489,7 +491,7 @@ void ObjImporterTest::wrongInteger() {
void ObjImporterTest::unmergedIndexOutOfRange() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
const Int id = importer->meshForName("PositionIndexOutOfRange");
CORRADE_VERIFY(id > -1);
@ -501,7 +503,7 @@ void ObjImporterTest::unmergedIndexOutOfRange() {
void ObjImporterTest::mergedIndexOutOfRange() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
const Int id = importer->meshForName("TextureIndexOutOfRange");
CORRADE_VERIFY(id > -1);
@ -513,7 +515,7 @@ void ObjImporterTest::mergedIndexOutOfRange() {
void ObjImporterTest::zeroIndex() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumbers.obj")));
const Int id = importer->meshForName("ZeroIndex");
CORRADE_VERIFY(id > -1);
@ -525,7 +527,7 @@ void ObjImporterTest::zeroIndex() {
void ObjImporterTest::explicitOptionalPositionCoordinate() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "optionalCoordinates.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "optionalCoordinates.obj")));
const Int id = importer->meshForName("SupportedPositionW");
CORRADE_VERIFY(id > -1);
@ -540,7 +542,7 @@ void ObjImporterTest::explicitOptionalPositionCoordinate() {
void ObjImporterTest::explicitOptionalTextureCoordinate() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "optionalCoordinates.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "optionalCoordinates.obj")));
const Int id = importer->meshForName("SupportedTextureW");
CORRADE_VERIFY(id > -1);
@ -555,7 +557,7 @@ void ObjImporterTest::explicitOptionalTextureCoordinate() {
void ObjImporterTest::unsupportedOptionalPositionCoordinate() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "optionalCoordinates.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "optionalCoordinates.obj")));
const Int id = importer->meshForName("UnsupportedPositionW");
CORRADE_VERIFY(id > -1);
@ -567,7 +569,7 @@ void ObjImporterTest::unsupportedOptionalPositionCoordinate() {
void ObjImporterTest::unsupportedOptionalTextureCoordinate() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "optionalCoordinates.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "optionalCoordinates.obj")));
const Int id = importer->meshForName("UnsupportedTextureW");
CORRADE_VERIFY(id > -1);
@ -579,7 +581,7 @@ void ObjImporterTest::unsupportedOptionalTextureCoordinate() {
void ObjImporterTest::shortFloatData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
const Int id = importer->meshForName("ShortFloat");
CORRADE_VERIFY(id > -1);
@ -591,7 +593,7 @@ void ObjImporterTest::shortFloatData() {
void ObjImporterTest::longFloatData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
const Int id = importer->meshForName("LongFloat");
CORRADE_VERIFY(id > -1);
@ -603,7 +605,7 @@ void ObjImporterTest::longFloatData() {
void ObjImporterTest::longOptionalFloatData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
const Int id = importer->meshForName("LongOptionalFloat");
CORRADE_VERIFY(id > -1);
@ -615,7 +617,7 @@ void ObjImporterTest::longOptionalFloatData() {
void ObjImporterTest::longIndexData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
const Int id = importer->meshForName("InvalidIndices");
CORRADE_VERIFY(id > -1);
@ -627,7 +629,7 @@ void ObjImporterTest::longIndexData() {
void ObjImporterTest::wrongPointIndexData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
const Int id = importer->meshForName("WrongPointIndices");
CORRADE_VERIFY(id > -1);
@ -639,7 +641,7 @@ void ObjImporterTest::wrongPointIndexData() {
void ObjImporterTest::wrongLineIndexData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
const Int id = importer->meshForName("WrongLineIndices");
CORRADE_VERIFY(id > -1);
@ -651,7 +653,7 @@ void ObjImporterTest::wrongLineIndexData() {
void ObjImporterTest::wrongTriangleIndexData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
const Int id = importer->meshForName("WrongTriangleIndices");
CORRADE_VERIFY(id > -1);
@ -663,7 +665,7 @@ void ObjImporterTest::wrongTriangleIndexData() {
void ObjImporterTest::polygonIndexData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongNumberCount.obj")));
const Int id = importer->meshForName("PolygonIndices");
CORRADE_VERIFY(id > -1);
@ -675,7 +677,7 @@ void ObjImporterTest::polygonIndexData() {
void ObjImporterTest::missingPositionData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
const Int id = importer->meshForName("MissingPositionData");
CORRADE_VERIFY(id > -1);
@ -687,7 +689,7 @@ void ObjImporterTest::missingPositionData() {
void ObjImporterTest::missingPositionIndices() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
const Int id = importer->meshForName("MissingPositionIndices");
CORRADE_VERIFY(id > -1);
@ -699,7 +701,7 @@ void ObjImporterTest::missingPositionIndices() {
void ObjImporterTest::missingNormalData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
const Int id = importer->meshForName("MissingNormalData");
CORRADE_VERIFY(id > -1);
@ -711,7 +713,7 @@ void ObjImporterTest::missingNormalData() {
void ObjImporterTest::missingNormalIndices() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
const Int id = importer->meshForName("MissingNormalIndices");
CORRADE_VERIFY(id > -1);
@ -723,7 +725,7 @@ void ObjImporterTest::missingNormalIndices() {
void ObjImporterTest::missingTextureCoordinateData() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
const Int id = importer->meshForName("MissingTextureData");
CORRADE_VERIFY(id > -1);
@ -735,7 +737,7 @@ void ObjImporterTest::missingTextureCoordinateData() {
void ObjImporterTest::missingTextureCoordinateIndices() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "missingData.obj")));
const Int id = importer->meshForName("MissingTextureIndices");
CORRADE_VERIFY(id > -1);
@ -747,7 +749,7 @@ void ObjImporterTest::missingTextureCoordinateIndices() {
void ObjImporterTest::wrongNormalIndexCount() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongIndexCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongIndexCount.obj")));
const Int id = importer->meshForName("ShortNormalIndices");
CORRADE_VERIFY(id > -1);
@ -759,7 +761,7 @@ void ObjImporterTest::wrongNormalIndexCount() {
void ObjImporterTest::wrongTextureCoordinateIndexCount() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "wrongIndexCount.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "wrongIndexCount.obj")));
const Int id = importer->meshForName("ShortTextureIndices");
CORRADE_VERIFY(id > -1);
@ -771,7 +773,7 @@ void ObjImporterTest::wrongTextureCoordinateIndexCount() {
void ObjImporterTest::unsupportedKeyword() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "keywords.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "keywords.obj")));
const Int id = importer->meshForName("UnsupportedKeyword");
CORRADE_VERIFY(id > -1);
@ -793,7 +795,7 @@ void ObjImporterTest::unsupportedKeyword() {
void ObjImporterTest::unknownKeyword() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "keywords.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "keywords.obj")));
const Int id = importer->meshForName("UnknownKeyword");
CORRADE_VERIFY(id > -1);
@ -806,15 +808,15 @@ void ObjImporterTest::unknownKeyword() {
void ObjImporterTest::openTwice() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")));
/* Shouldn't crash, leak or anything */
}
void ObjImporterTest::importTwice() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("ObjImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(OBJIMPORTER_TEST_DIR, "pointMesh.obj")));
/* Verify that everything is working the same way on second use */
{

2
src/MagnumPlugins/TgaImageConverter/Test/TgaImageConverterTest.cpp

@ -30,7 +30,7 @@
#include <Corrade/TestSuite/Tester.h>
#include <Corrade/TestSuite/Compare/Container.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/Directory.h>
#include <Corrade/Utility/Path.h>
#include "Magnum/ImageView.h"
#include "Magnum/PixelFormat.h"

10
src/MagnumPlugins/TgaImporter/Test/TgaImporterTest.cpp

@ -26,12 +26,14 @@
#include <sstream>
#include <Corrade/Containers/ArrayView.h>
#include <Corrade/Containers/Optional.h>
#include <Corrade/Containers/String.h>
#include <Corrade/Containers/StringStl.h> /** @todo remove once AbstractImporter is <string>-free */
#include <Corrade/TestSuite/Tester.h>
#include <Corrade/TestSuite/Compare/Container.h>
#include <Corrade/Utility/Algorithms.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/Directory.h>
#include <Corrade/Utility/FormatStl.h>
#include <Corrade/Utility/Path.h>
#include "Magnum/PixelFormat.h"
#include "Magnum/Trade/AbstractImporter.h"
@ -457,15 +459,15 @@ void TgaImporterTest::openMemory() {
void TgaImporterTest::openTwice() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("TgaImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(TGAIMPORTER_TEST_DIR, "file.tga")));
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(TGAIMPORTER_TEST_DIR, "file.tga")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(TGAIMPORTER_TEST_DIR, "file.tga")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(TGAIMPORTER_TEST_DIR, "file.tga")));
/* Shouldn't crash, leak or anything */
}
void TgaImporterTest::importTwice() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("TgaImporter");
CORRADE_VERIFY(importer->openFile(Utility::Directory::join(TGAIMPORTER_TEST_DIR, "file.tga")));
CORRADE_VERIFY(importer->openFile(Utility::Path::join(TGAIMPORTER_TEST_DIR, "file.tga")));
/* Verify that everything is working the same way on second use */
{

Loading…
Cancel
Save