Browse Source

AnyImageImporter: properly test level count propagation.

Such a hopeful test coverage, almost there, and yet it doesn't test
everything. It now uses 1D, 2D and 3D KTX2 files with levels taken
directly from KtxImporter tests, the original 1d.ktx2 and 3d.ktx2 are
moved to AnyImageConverter test where they are used to verify metadata
presence.
pull/620/head
Vladimír Vondruš 3 years ago
parent
commit
22c20bee4c
  1. 0
      src/MagnumPlugins/AnyImageConverter/Test/1d.ktx2
  2. 0
      src/MagnumPlugins/AnyImageConverter/Test/3d.ktx2
  3. 10
      src/MagnumPlugins/AnyImageConverter/Test/AnyImageConverterTest.cpp
  4. 6
      src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt
  5. 1
      src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake
  6. BIN
      src/MagnumPlugins/AnyImageImporter/Test/1d-mipmaps.ktx2
  7. BIN
      src/MagnumPlugins/AnyImageImporter/Test/2d-mipmaps-and-layers.ktx2
  8. BIN
      src/MagnumPlugins/AnyImageImporter/Test/2d-mipmaps.ktx2
  9. 240
      src/MagnumPlugins/AnyImageImporter/Test/AnyImageImporterTest.cpp
  10. 7
      src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt

0
src/MagnumPlugins/AnyImageImporter/Test/1d.ktx2 → src/MagnumPlugins/AnyImageConverter/Test/1d.ktx2

0
src/MagnumPlugins/AnyImageImporter/Test/3d.ktx2 → src/MagnumPlugins/AnyImageConverter/Test/3d.ktx2

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

@ -467,9 +467,8 @@ void AnyImageConverterTest::convert1D() {
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter"); Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
CORRADE_VERIFY(converter->convertToFile(Image1D, filename)); CORRADE_VERIFY(converter->convertToFile(Image1D, filename));
/* Compare to an expected output to ensure we actually saved the file /* Compare to an expected output to ensure we actually saved the file
including the metadata. This also doubles as a generator for the 1d.ktx2 including the metadata */
file that AnyImageImporterTest uses. */ CORRADE_COMPARE_AS(filename, Utility::Path::join(ANYIMAGECONVERTER_TEST_DIR, "1d.ktx2"), TestSuite::Compare::File);
CORRADE_COMPARE_AS(filename, Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "1d.ktx2"), TestSuite::Compare::File);
} }
void AnyImageConverterTest::convert2D() { void AnyImageConverterTest::convert2D() {
@ -503,9 +502,8 @@ void AnyImageConverterTest::convert3D() {
Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter"); Containers::Pointer<AbstractImageConverter> converter = manager.instantiate("AnyImageConverter");
CORRADE_VERIFY(converter->convertToFile(Image3D, filename)); CORRADE_VERIFY(converter->convertToFile(Image3D, filename));
/* Compare to an expected output to ensure we actually saved the file /* Compare to an expected output to ensure we actually saved the file
including the metadata. This also doubles as a generator for the including the metadata */
3d.exr file that AnyImageImporterTest uses. */ CORRADE_COMPARE_AS(filename, Utility::Path::join(ANYIMAGECONVERTER_TEST_DIR, "3d.ktx2"), TestSuite::Compare::File);
CORRADE_COMPARE_AS(filename, Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "3d.ktx2"), TestSuite::Compare::File);
} }
void AnyImageConverterTest::convertCompressed1D() { void AnyImageConverterTest::convertCompressed1D() {

6
src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt

@ -33,9 +33,11 @@ set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID)
set(ANYIMAGECONVERTER_TEST_DIR ".")
set(ANYIMAGECONVERTER_TEST_OUTPUT_DIR "write") set(ANYIMAGECONVERTER_TEST_OUTPUT_DIR "write")
set(ANYIMAGEIMPORTER_TEST_DIR .) set(ANYIMAGEIMPORTER_TEST_DIR .)
else() else()
set(ANYIMAGECONVERTER_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(ANYIMAGECONVERTER_TEST_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(ANYIMAGECONVERTER_TEST_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(ANYIMAGEIMPORTER_TEST_DIR ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test) set(ANYIMAGEIMPORTER_TEST_DIR ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test)
endif() endif()
@ -61,8 +63,8 @@ corrade_add_test(AnyImageConverterTest AnyImageConverterTest.cpp
# now # now
Threads::Threads Threads::Threads
FILES FILES
${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/1d.ktx2 1d.ktx2
${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/3d.ktx2 3d.ktx2
${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/depth32f-custom-channels.exr) ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/AnyImageImporter/Test/depth32f-custom-channels.exr)
target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC) if(MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC)

1
src/MagnumPlugins/AnyImageConverter/Test/configure.h.cmake

@ -25,6 +25,7 @@
#cmakedefine ANYIMAGECONVERTER_PLUGIN_FILENAME "${ANYIMAGECONVERTER_PLUGIN_FILENAME}" #cmakedefine ANYIMAGECONVERTER_PLUGIN_FILENAME "${ANYIMAGECONVERTER_PLUGIN_FILENAME}"
#cmakedefine TGAIMAGECONVERTER_PLUGIN_FILENAME "${TGAIMAGECONVERTER_PLUGIN_FILENAME}" #cmakedefine TGAIMAGECONVERTER_PLUGIN_FILENAME "${TGAIMAGECONVERTER_PLUGIN_FILENAME}"
#define ANYIMAGECONVERTER_TEST_DIR "${ANYIMAGECONVERTER_TEST_DIR}"
#define ANYIMAGECONVERTER_TEST_OUTPUT_DIR "${ANYIMAGECONVERTER_TEST_OUTPUT_DIR}" #define ANYIMAGECONVERTER_TEST_OUTPUT_DIR "${ANYIMAGECONVERTER_TEST_OUTPUT_DIR}"
#define ANYIMAGEIMPORTER_TEST_DIR "${ANYIMAGEIMPORTER_TEST_DIR}" #define ANYIMAGEIMPORTER_TEST_DIR "${ANYIMAGEIMPORTER_TEST_DIR}"

BIN
src/MagnumPlugins/AnyImageImporter/Test/1d-mipmaps.ktx2

Binary file not shown.

BIN
src/MagnumPlugins/AnyImageImporter/Test/2d-mipmaps-and-layers.ktx2

Binary file not shown.

BIN
src/MagnumPlugins/AnyImageImporter/Test/2d-mipmaps.ktx2

Binary file not shown.

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

@ -47,9 +47,7 @@ namespace Magnum { namespace Trade { namespace Test { namespace {
struct AnyImageImporterTest: TestSuite::Tester { struct AnyImageImporterTest: TestSuite::Tester {
explicit AnyImageImporterTest(); explicit AnyImageImporterTest();
void load1D(); void load();
void load2D();
void load3D();
void detect(); void detect();
void ktxBasisFallbackFile(); void ktxBasisFallbackFile();
@ -66,6 +64,13 @@ struct AnyImageImporterTest: TestSuite::Tester {
plugins have configuration subgroups as well */ plugins have configuration subgroups as well */
void propagateFileCallback(); void propagateFileCallback();
void images1D();
void images2D();
void images3D();
void imageLevels1D();
void imageLevels2D();
void imageLevels3D();
/* Explicitly forbid system-wide plugin dependencies */ /* Explicitly forbid system-wide plugin dependencies */
PluginManager::Manager<AbstractImporter> _manager{"nonexistent"}; PluginManager::Manager<AbstractImporter> _manager{"nonexistent"};
}; };
@ -75,31 +80,11 @@ constexpr struct {
const char* filename; const char* filename;
bool asData; bool asData;
const char* messageFunctionName; const char* messageFunctionName;
} Load1DData[]{ } LoadData[]{
{"KTX2", "1d.ktx2", false, "KtxImporter"},
{"KTX2 data", "1d.ktx2", true, "KtxImporter"},
};
constexpr struct {
const char* name;
const char* filename;
bool asData;
const char* messageFunctionName;
} Load2DData[]{
{"TGA", "rgb.tga", false, "openFile"}, {"TGA", "rgb.tga", false, "openFile"},
{"TGA data", "rgb.tga", true, "openData"} {"TGA data", "rgb.tga", true, "openData"}
}; };
constexpr struct {
const char* name;
const char* filename;
bool asData;
const char* messageFunctionName;
} Load3DData[]{
{"KTX2", "3d.ktx2", false, "KtxImporter"},
{"KTX2 data", "3d.ktx2", true, "KtxImporter"},
};
constexpr struct { constexpr struct {
const char* name; const char* name;
const char* filename; const char* filename;
@ -204,14 +189,8 @@ constexpr struct {
}; };
AnyImageImporterTest::AnyImageImporterTest() { AnyImageImporterTest::AnyImageImporterTest() {
addInstancedTests({&AnyImageImporterTest::load1D}, addInstancedTests({&AnyImageImporterTest::load},
Containers::arraySize(Load1DData)); Containers::arraySize(LoadData));
addInstancedTests({&AnyImageImporterTest::load2D},
Containers::arraySize(Load2DData));
addInstancedTests({&AnyImageImporterTest::load3D},
Containers::arraySize(Load3DData));
addInstancedTests({&AnyImageImporterTest::detect}, addInstancedTests({&AnyImageImporterTest::detect},
Containers::arraySize(DetectData)); Containers::arraySize(DetectData));
@ -228,7 +207,7 @@ AnyImageImporterTest::AnyImageImporterTest() {
addTests({&AnyImageImporterTest::emptyData}); addTests({&AnyImageImporterTest::emptyData});
addInstancedTests({&AnyImageImporterTest::propagateFlags}, addInstancedTests({&AnyImageImporterTest::propagateFlags},
Containers::arraySize(Load2DData)); Containers::arraySize(LoadData));
addInstancedTests({&AnyImageImporterTest::propagateConfiguration}, addInstancedTests({&AnyImageImporterTest::propagateConfiguration},
Containers::arraySize(PropagateConfigurationData)); Containers::arraySize(PropagateConfigurationData));
@ -236,7 +215,14 @@ AnyImageImporterTest::AnyImageImporterTest() {
addInstancedTests({&AnyImageImporterTest::propagateConfigurationUnknown}, addInstancedTests({&AnyImageImporterTest::propagateConfigurationUnknown},
Containers::arraySize(PropagateConfigurationUnknownData)); Containers::arraySize(PropagateConfigurationUnknownData));
addTests({&AnyImageImporterTest::propagateFileCallback}); addTests({&AnyImageImporterTest::propagateFileCallback,
&AnyImageImporterTest::images1D,
&AnyImageImporterTest::images2D,
&AnyImageImporterTest::images3D,
&AnyImageImporterTest::imageLevels1D,
&AnyImageImporterTest::imageLevels2D,
&AnyImageImporterTest::imageLevels3D});
/* Load the plugin directly from the build tree. Otherwise it's static and /* Load the plugin directly from the build tree. Otherwise it's static and
already loaded. */ already loaded. */
@ -249,36 +235,8 @@ AnyImageImporterTest::AnyImageImporterTest() {
#endif #endif
} }
void AnyImageImporterTest::load1D() { void AnyImageImporterTest::load() {
auto&& data = Load1DData[testCaseInstanceId()]; auto&& data = LoadData[testCaseInstanceId()];
setTestCaseDescription(data.name);
PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
#ifdef ANYIMAGEIMPORTER_PLUGIN_FILENAME
CORRADE_VERIFY(manager.load(ANYIMAGEIMPORTER_PLUGIN_FILENAME) & PluginManager::LoadState::Loaded);
#endif
/* Catch also ABI and interface mismatch errors */
if(!(manager.load("KtxImporter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImporter plugin can't be loaded.");
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename));
CORRADE_VERIFY(read);
CORRADE_VERIFY(importer->openData(*read));
} else CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename)));
CORRADE_COMPARE(importer->image1DCount(), 1);
/* Check only size, as it is good enough proof that it is working */
Containers::Optional<ImageData1D> image = importer->image1D(0);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->size(), 2);
}
void AnyImageImporterTest::load2D() {
auto&& data = Load2DData[testCaseInstanceId()];
setTestCaseDescription(data.name); setTestCaseDescription(data.name);
if(!(_manager.loadState("TgaImporter") & PluginManager::LoadState::Loaded)) if(!(_manager.loadState("TgaImporter") & PluginManager::LoadState::Loaded))
@ -302,34 +260,6 @@ void AnyImageImporterTest::load2D() {
CORRADE_VERIFY(!importer->isOpened()); CORRADE_VERIFY(!importer->isOpened());
} }
void AnyImageImporterTest::load3D() {
auto&& data = Load3DData[testCaseInstanceId()];
setTestCaseDescription(data.name);
PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
#ifdef ANYIMAGEIMPORTER_PLUGIN_FILENAME
CORRADE_VERIFY(manager.load(ANYIMAGEIMPORTER_PLUGIN_FILENAME) & PluginManager::LoadState::Loaded);
#endif
/* Catch also ABI and interface mismatch errors */
if(!(manager.load("KtxImporter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImporter plugin can't be loaded.");
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
if(data.asData) {
Containers::Optional<Containers::Array<char>> read = Utility::Path::read(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename));
CORRADE_VERIFY(read);
CORRADE_VERIFY(importer->openData(*read));
} else CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, data.filename)));
CORRADE_COMPARE(importer->image3DCount(), 1);
/* Check only size, as it is good enough proof that it is working */
Containers::Optional<ImageData3D> image = importer->image3D(0);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->size(), (Vector3i{2, 3, 2}));
}
void AnyImageImporterTest::detect() { void AnyImageImporterTest::detect() {
auto&& data = DetectData[testCaseInstanceId()]; auto&& data = DetectData[testCaseInstanceId()];
setTestCaseDescription(data.name); setTestCaseDescription(data.name);
@ -467,7 +397,7 @@ void AnyImageImporterTest::emptyData() {
} }
void AnyImageImporterTest::propagateFlags() { void AnyImageImporterTest::propagateFlags() {
auto&& data = Load2DData[testCaseInstanceId()]; auto&& data = LoadData[testCaseInstanceId()];
setTestCaseDescription(data.name); setTestCaseDescription(data.name);
if(!(_manager.loadState("TgaImporter") & PluginManager::LoadState::Loaded)) if(!(_manager.loadState("TgaImporter") & PluginManager::LoadState::Loaded))
@ -579,6 +509,130 @@ void AnyImageImporterTest::propagateFileCallback() {
CORRADE_VERIFY(!importer->isOpened()); CORRADE_VERIFY(!importer->isOpened());
} }
void AnyImageImporterTest::images1D() {
PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
#ifdef ANYIMAGEIMPORTER_PLUGIN_FILENAME
CORRADE_VERIFY(manager.load(ANYIMAGEIMPORTER_PLUGIN_FILENAME) & PluginManager::LoadState::Loaded);
#endif
/* Catch also ABI and interface mismatch errors */
if(!(manager.load("KtxImporter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImporter plugin can't be loaded.");
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "1d-mipmaps.ktx2")));
CORRADE_COMPARE(importer->image1DCount(), 1);
CORRADE_COMPARE(importer->image2DCount(), 0);
CORRADE_COMPARE(importer->image3DCount(), 0);
/* Check only size, as it is good enough proof that it is working */
Containers::Optional<ImageData1D> image = importer->image1D(0);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->size(), 4);
}
void AnyImageImporterTest::images2D() {
if(!(_manager.loadState("TgaImporter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("TgaImporter plugin not enabled, cannot test");
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("AnyImageImporter");
CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "rgb.tga")));
CORRADE_COMPARE(importer->image1DCount(), 0);
CORRADE_COMPARE(importer->image2DCount(), 1);
CORRADE_COMPARE(importer->image3DCount(), 0);
/* Check only size, as it is good enough proof that it is working */
Containers::Optional<ImageData2D> image = importer->image2D(0);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->size(), (Vector2i{3, 2}));
}
void AnyImageImporterTest::images3D() {
PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
#ifdef ANYIMAGEIMPORTER_PLUGIN_FILENAME
CORRADE_VERIFY(manager.load(ANYIMAGEIMPORTER_PLUGIN_FILENAME) & PluginManager::LoadState::Loaded);
#endif
/* Catch also ABI and interface mismatch errors */
if(!(manager.load("KtxImporter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImporter plugin can't be loaded.");
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "2d-mipmaps-and-layers.ktx2")));
CORRADE_COMPARE(importer->image1DCount(), 0);
CORRADE_COMPARE(importer->image2DCount(), 0);
CORRADE_COMPARE(importer->image3DCount(), 1);
/* Check only size, as it is good enough proof that it is working */
Containers::Optional<ImageData3D> image = importer->image3D(0);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->size(), (Vector3i{4, 3, 3}));
}
void AnyImageImporterTest::imageLevels1D() {
PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
#ifdef ANYIMAGEIMPORTER_PLUGIN_FILENAME
CORRADE_VERIFY(manager.load(ANYIMAGEIMPORTER_PLUGIN_FILENAME) & PluginManager::LoadState::Loaded);
#endif
/* Catch also ABI and interface mismatch errors */
if(!(manager.load("KtxImporter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImporter plugin can't be loaded.");
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "1d-mipmaps.ktx2")));
CORRADE_COMPARE(importer->image1DCount(), 1);
CORRADE_COMPARE(importer->image1DLevelCount(0), 3);
/* Check only size, as it is good enough proof that it is working */
Containers::Optional<ImageData1D> image = importer->image1D(0, 1);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->size(), 2);
}
void AnyImageImporterTest::imageLevels2D() {
PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
#ifdef ANYIMAGEIMPORTER_PLUGIN_FILENAME
CORRADE_VERIFY(manager.load(ANYIMAGEIMPORTER_PLUGIN_FILENAME) & PluginManager::LoadState::Loaded);
#endif
/* Catch also ABI and interface mismatch errors */
if(!(manager.load("KtxImporter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImporter plugin can't be loaded.");
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "2d-mipmaps.ktx2")));
CORRADE_COMPARE(importer->image2DCount(), 1);
CORRADE_COMPARE(importer->image2DLevelCount(0), 3);
/* Check only size, as it is good enough proof that it is working */
Containers::Optional<ImageData2D> image = importer->image2D(0, 1);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->size(), (Vector2i{2, 1}));
}
void AnyImageImporterTest::imageLevels3D() {
PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
#ifdef ANYIMAGEIMPORTER_PLUGIN_FILENAME
CORRADE_VERIFY(manager.load(ANYIMAGEIMPORTER_PLUGIN_FILENAME) & PluginManager::LoadState::Loaded);
#endif
/* Catch also ABI and interface mismatch errors */
if(!(manager.load("KtxImporter") & PluginManager::LoadState::Loaded))
CORRADE_SKIP("KtxImporter plugin can't be loaded.");
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnyImageImporter");
CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYIMAGEIMPORTER_TEST_DIR, "2d-mipmaps-and-layers.ktx2")));
CORRADE_COMPARE(importer->image3DCount(), 1);
CORRADE_COMPARE(importer->image3DLevelCount(0), 3);
/* Check only size, as it is good enough proof that it is working */
Containers::Optional<ImageData3D> image = importer->image3D(0, 1);
CORRADE_VERIFY(image);
CORRADE_COMPARE(image->size(), (Vector3i{2, 1, 3}));
}
}}}} }}}}
CORRADE_TEST_MAIN(Magnum::Trade::Test::AnyImageImporterTest) CORRADE_TEST_MAIN(Magnum::Trade::Test::AnyImageImporterTest)

7
src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt

@ -53,9 +53,10 @@ corrade_add_test(AnyImageImporterTest AnyImageImporterTest.cpp
8x8.astc 8x8.astc
# Generated by AnyImageConverterTest::propagateConfiguration2D() # Generated by AnyImageConverterTest::propagateConfiguration2D()
depth32f-custom-channels.exr depth32f-custom-channels.exr
# Generated by AnyImageConverterTest::convert{1D,3D}() # From KtxImporter test data
1d.ktx2 1d-mipmaps.ktx2
3d.ktx2 2d-mipmaps.ktx2
2d-mipmaps-and-layers.ktx2
# rgb.ktx2 from BasisImporter test data (in magnum-plugins), renamed # rgb.ktx2 from BasisImporter test data (in magnum-plugins), renamed
basis.ktx2 basis.ktx2
gray.jpg gray.jpg

Loading…
Cancel
Save