mirror of https://github.com/mosra/magnum.git
5 changed files with 152 additions and 0 deletions
@ -1,2 +1,9 @@
|
||||
corrade_add_plugin(TGAImporter ${MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR} TGAImporter.conf TGAImporter.cpp) |
||||
target_link_libraries(TGAImporter ${MAGNUM_LIBRARY}) |
||||
|
||||
if(BUILD_TESTS) |
||||
add_library(TGAImporterTestLib TGAImporter.cpp) |
||||
target_link_libraries(TGAImporterTestLib ${MAGNUM_LIBRARY} ${CORRADE_UTILITY_LIBRARY} ${CORRADE_PLUGINMANAGER_LIBRARY}) |
||||
enable_testing() |
||||
add_subdirectory(Test) |
||||
endif() |
||||
|
||||
@ -0,0 +1,2 @@
|
||||
corrade_add_test(TGAImporterTest TGAImporterTest.h TGAImporterTest.cpp) |
||||
target_link_libraries(TGAImporterTest TGAImporterTestLib) |
||||
@ -0,0 +1,98 @@
|
||||
/*
|
||||
Copyright © 2010, 2011 Vladimír Vondruš <mosra@centrum.cz> |
||||
|
||||
This file is part of Magnum. |
||||
|
||||
Magnum is free software: you can redistribute it and/or modify |
||||
it under the terms of the GNU Lesser General Public License version 3 |
||||
only, as published by the Free Software Foundation. |
||||
|
||||
Magnum is distributed in the hope that it will be useful, |
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
GNU Lesser General Public License version 3 for more details. |
||||
*/ |
||||
|
||||
#include "TGAImporterTest.h" |
||||
|
||||
#include <QtTest/QTest> |
||||
|
||||
#include "Utility/Debug.h" |
||||
#include "../TGAImporter.h" |
||||
|
||||
using namespace std; |
||||
using namespace Corrade::Utility; |
||||
|
||||
QTEST_APPLESS_MAIN(Magnum::Plugins::TGAImporter::Test::TGAImporterTest) |
||||
|
||||
namespace Magnum { namespace Plugins { namespace TGAImporter { namespace Test { |
||||
|
||||
void TGAImporterTest::paletted() { |
||||
const char data[] = { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |
||||
istringstream in(string(data, sizeof(data))); |
||||
|
||||
ostringstream debug; |
||||
Error::setOutput(&debug); |
||||
|
||||
TGAImporter importer; |
||||
QVERIFY(!importer.open(in)); |
||||
QCOMPARE(debug.str().c_str(), "TGAImporter: paletted files are not supported\n"); |
||||
} |
||||
|
||||
void TGAImporterTest::nonRgb() { |
||||
const char data[] = { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |
||||
istringstream in(string(data, sizeof(data))); |
||||
|
||||
ostringstream debug; |
||||
Error::setOutput(&debug); |
||||
|
||||
TGAImporter importer; |
||||
QVERIFY(!importer.open(in)); |
||||
QCOMPARE(debug.str().c_str(), "TGAImporter: non-RGB files are not supported\n"); |
||||
} |
||||
|
||||
void TGAImporterTest::bits16() { |
||||
const char data[] = { 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0 }; |
||||
istringstream in(string(data, sizeof(data))); |
||||
|
||||
ostringstream debug; |
||||
Error::setOutput(&debug); |
||||
|
||||
TGAImporter importer; |
||||
QVERIFY(!importer.open(in)); |
||||
QCOMPARE(debug.str().c_str(), "TGAImporter: unsupported bits-per-pixel: 16\n"); |
||||
} |
||||
|
||||
void TGAImporterTest::bits24() { |
||||
const char data[] = { |
||||
0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 24, 0, |
||||
1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6, 5, 6, 7, 6, 7, 8 |
||||
}; |
||||
std::istringstream in(string(data, sizeof(data))); |
||||
|
||||
TGAImporter importer; |
||||
QVERIFY(importer.open(in)); |
||||
auto image = importer.image2D(0); |
||||
QVERIFY(image->colorFormat() == ColorFormat::BGR); |
||||
QVERIFY(image->dimensions() == Math::Vector2<GLsizei>(2, 3)); |
||||
QVERIFY(image->type() == TypeTraits<GLubyte>::glType()); |
||||
QVERIFY(string(static_cast<const char*>(image->data())) == string(data + 18, 2*3*3)); |
||||
} |
||||
|
||||
void TGAImporterTest::bits32() { |
||||
const char data[] = { |
||||
0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 32, 0, |
||||
1, 2, 3, 1, 2, 3, 4, 1, 3, 4, 5, 1, 4, 5, 6, 1, 5, 6, 7, 1, 6, 7, 8, 1 |
||||
}; |
||||
std::istringstream in(string(data, sizeof(data))); |
||||
|
||||
TGAImporter importer; |
||||
QVERIFY(importer.open(in)); |
||||
auto image = importer.image2D(0); |
||||
QVERIFY(image->colorFormat() == ColorFormat::BGRA); |
||||
QVERIFY(image->dimensions() == Math::Vector2<GLsizei>(2, 3)); |
||||
QVERIFY(image->type() == TypeTraits<GLubyte>::glType()); |
||||
QVERIFY(string(static_cast<const char*>(image->data()), 2*3*3) == string(data + 18, 2*3*3)); |
||||
} |
||||
|
||||
}}}} |
||||
@ -0,0 +1,35 @@
|
||||
#ifndef Magnum_Plugins_TGAImporter_Test_TGAImporterTest_h |
||||
#define Magnum_Plugins_TGAImporter_Test_TGAImporterTest_h |
||||
/*
|
||||
Copyright © 2010, 2011 Vladimír Vondruš <mosra@centrum.cz> |
||||
|
||||
This file is part of Magnum. |
||||
|
||||
Magnum is free software: you can redistribute it and/or modify |
||||
it under the terms of the GNU Lesser General Public License version 3 |
||||
only, as published by the Free Software Foundation. |
||||
|
||||
Magnum is distributed in the hope that it will be useful, |
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
GNU Lesser General Public License version 3 for more details. |
||||
*/ |
||||
|
||||
#include <QtCore/QObject> |
||||
|
||||
namespace Magnum { namespace Plugins { namespace TGAImporter { namespace Test { |
||||
|
||||
class TGAImporterTest: public QObject { |
||||
Q_OBJECT |
||||
|
||||
private slots: |
||||
void paletted(); |
||||
void nonRgb(); |
||||
void bits16(); |
||||
void bits24(); |
||||
void bits32(); |
||||
}; |
||||
|
||||
}}}} |
||||
|
||||
#endif |
||||
Loading…
Reference in new issue