diff options
Diffstat (limited to 'tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp')
-rw-r--r-- | tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp b/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp new file mode 100644 index 0000000000..9ff4f0ccf2 --- /dev/null +++ b/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp @@ -0,0 +1,111 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <private/qtexturefilereader_p.h> +#include <QtTest> + +class tst_qtexturefilereader : public QObject +{ + Q_OBJECT + +private slots: + void checkHandlers_data(); + void checkHandlers(); +}; + +void tst_qtexturefilereader::checkHandlers_data() +{ + QTest::addColumn<QString>("fileName"); + QTest::addColumn<QSize>("size"); + QTest::addColumn<quint32>("glFormat"); + QTest::addColumn<quint32>("glInternalFormat"); + QTest::addColumn<quint32>("glBaseInternalFormat"); + QTest::addColumn<int>("levels"); + QTest::addColumn<QList<int>>("dataOffsets"); + QTest::addColumn<QList<int>>("dataLengths"); + + QTest::addRow("pattern.pkm") << QStringLiteral(":/texturefiles/pattern.pkm") + << QSize(64, 64) + << quint32(0x0) + << quint32(0x8d64) + << quint32(0x0) + << 1 + << (QList<int>() << 16) + << (QList<int>() << 2048); + + QTest::addRow("car.ktx") << QStringLiteral(":/texturefiles/car.ktx") + << QSize(146, 80) + << quint32(0x0) + << quint32(0x9278) + << quint32(0x1908) + << 1 + << (QList<int>() << 68) + << (QList<int>() << 11840); + + QTest::addRow("car_mips.ktx") << QStringLiteral(":/texturefiles/car_mips.ktx") + << QSize(146, 80) + << quint32(0x0) + << quint32(0x9274) + << quint32(0x1907) + << 8 + << (QList<int>() << 68 << 5992 << 7516 << 7880 << 8004 << 8056 << 8068 << 8080) + << (QList<int>() << 5920 << 1520 << 360 << 120 << 48 << 8 << 8 << 8); + +} + +void tst_qtexturefilereader::checkHandlers() +{ + QFETCH(QString, fileName); + QFETCH(QSize, size); + QFETCH(quint32, glFormat); + QFETCH(quint32, glInternalFormat); + QFETCH(int, levels); + QFETCH(QList<int>, dataOffsets); + QFETCH(QList<int>, dataLengths); + + QFile f(fileName); + QVERIFY(f.open(QIODevice::ReadOnly)); + QTextureFileReader r(&f, fileName); + QVERIFY(r.canRead()); + + QTextureFileData tex = r.read(); + QVERIFY(!tex.isNull()); + QVERIFY(tex.isValid()); + QCOMPARE(tex.size(), size); + QCOMPARE(tex.glFormat(), glFormat); + QCOMPARE(tex.glInternalFormat(), glInternalFormat); + QCOMPARE(tex.numLevels(), levels); + for (int i = 0; i < tex.numLevels(); i++) { + QCOMPARE(tex.dataOffset(i), dataOffsets.at(i)); + QCOMPARE(tex.dataLength(i), dataLengths.at(i)); + } +} + +QTEST_MAIN(tst_qtexturefilereader) + +#include "tst_qtexturefilereader.moc" |