diff options
Diffstat (limited to 'tests/auto/gui/util/qtexturefilereader')
-rw-r--r-- | tests/auto/gui/util/qtexturefilereader/CMakeLists.txt | 31 | ||||
-rw-r--r-- | tests/auto/gui/util/qtexturefilereader/qtexturefilereader.qrc | 9 | ||||
-rw-r--r-- | tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_float32_rgba.ktx | bin | 0 -> 32848 bytes | |||
-rw-r--r-- | tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_metadata.ktx | bin | 0 -> 4916 bytes | |||
-rw-r--r-- | tests/auto/gui/util/qtexturefilereader/texturefiles/invalid.ktx | bin | 0 -> 69 bytes | |||
-rw-r--r-- | tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp | 79 |
6 files changed, 70 insertions, 49 deletions
diff --git a/tests/auto/gui/util/qtexturefilereader/CMakeLists.txt b/tests/auto/gui/util/qtexturefilereader/CMakeLists.txt index 91083348f7..70e2c02417 100644 --- a/tests/auto/gui/util/qtexturefilereader/CMakeLists.txt +++ b/tests/auto/gui/util/qtexturefilereader/CMakeLists.txt @@ -1,30 +1,35 @@ -# Generated from qtexturefilereader.pro. +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause ##################################################################### ## tst_qtexturefilereader Test: ##################################################################### -qt_internal_add_test(tst_qtexturefilereader - SOURCES - tst_qtexturefilereader.cpp - PUBLIC_LIBRARIES - Qt::Gui - Qt::GuiPrivate -) +if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT) + cmake_minimum_required(VERSION 3.16) + project(tst_qtexturefilereader LANGUAGES CXX) + find_package(Qt6BuildInternals REQUIRED COMPONENTS STANDALONE_TEST) +endif() # Resources: set(qtexturefilereader_resource_files "texturefiles/car.ktx" "texturefiles/car_mips.ktx" + "texturefiles/cubemap_float32_rgba.ktx" + "texturefiles/cubemap_metadata.ktx" + "texturefiles/invalid.ktx" "texturefiles/newlogo.astc" "texturefiles/newlogo_srgb.astc" "texturefiles/pattern.pkm" ) -qt_internal_add_resource(tst_qtexturefilereader "qtexturefilereader" - PREFIX - "/" - FILES - ${qtexturefilereader_resource_files} +qt_internal_add_test(tst_qtexturefilereader + SOURCES + tst_qtexturefilereader.cpp + LIBRARIES + Qt::Gui + Qt::GuiPrivate + TESTDATA ${qtexturefilereader_resource_files} + BUILTIN_TESTDATA ) diff --git a/tests/auto/gui/util/qtexturefilereader/qtexturefilereader.qrc b/tests/auto/gui/util/qtexturefilereader/qtexturefilereader.qrc deleted file mode 100644 index 8aab86e1ff..0000000000 --- a/tests/auto/gui/util/qtexturefilereader/qtexturefilereader.qrc +++ /dev/null @@ -1,9 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>texturefiles/car.ktx</file> - <file>texturefiles/pattern.pkm</file> - <file>texturefiles/car_mips.ktx</file> - <file>texturefiles/newlogo_srgb.astc</file> - <file>texturefiles/newlogo.astc</file> - </qresource> -</RCC> diff --git a/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_float32_rgba.ktx b/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_float32_rgba.ktx Binary files differnew file mode 100644 index 0000000000..25b48b1370 --- /dev/null +++ b/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_float32_rgba.ktx diff --git a/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_metadata.ktx b/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_metadata.ktx Binary files differnew file mode 100644 index 0000000000..a29f68a7c9 --- /dev/null +++ b/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_metadata.ktx diff --git a/tests/auto/gui/util/qtexturefilereader/texturefiles/invalid.ktx b/tests/auto/gui/util/qtexturefilereader/texturefiles/invalid.ktx Binary files differnew file mode 100644 index 0000000000..68a92221db --- /dev/null +++ b/tests/auto/gui/util/qtexturefilereader/texturefiles/invalid.ktx diff --git a/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp b/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp index 6ff3497a74..62760e3844 100644 --- a/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp +++ b/tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp @@ -1,30 +1,5 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ +// Copyright (C) 2018 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <private/qtexturefilereader_p.h> #include <QTest> @@ -36,6 +11,8 @@ class tst_qtexturefilereader : public QObject private slots: void checkHandlers_data(); void checkHandlers(); + void checkInvalid(); + void checkMetadata(); }; void tst_qtexturefilereader::checkHandlers_data() @@ -46,6 +23,7 @@ void tst_qtexturefilereader::checkHandlers_data() QTest::addColumn<quint32>("glInternalFormat"); QTest::addColumn<quint32>("glBaseInternalFormat"); QTest::addColumn<int>("levels"); + QTest::addColumn<int>("faces"); QTest::addColumn<QList<int>>("dataOffsets"); QTest::addColumn<QList<int>>("dataLengths"); @@ -56,6 +34,7 @@ void tst_qtexturefilereader::checkHandlers_data() << quint32(0x8d64) << quint32(0x0) << 1 + << 1 << (QList<int>() << 16) << (QList<int>() << 2048); @@ -66,6 +45,7 @@ void tst_qtexturefilereader::checkHandlers_data() << quint32(0x9278) << quint32(0x1908) << 1 + << 1 << (QList<int>() << 68) << (QList<int>() << 11840); @@ -76,9 +56,21 @@ void tst_qtexturefilereader::checkHandlers_data() << quint32(0x9274) << quint32(0x1907) << 8 + << 1 << (QList<int>() << 68 << 5992 << 7516 << 7880 << 8004 << 8056 << 8068 << 8080) << (QList<int>() << 5920 << 1520 << 360 << 120 << 48 << 8 << 8 << 8); + QTest::addRow("cubemap_float32_rgba.ktx") + << QStringLiteral(":/texturefiles/cubemap_float32_rgba.ktx") + << QSize(16, 16) + << quint32(0x1908) + << quint32(0x8814) + << quint32(0x1908) + << 5 + << 6 + << (QList<int>() << 96 << 24676 << 30824 << 32364 << 32752) + << (QList<int>() << 4096 << 1024 << 256 << 64 << 16); + QTest::addRow("newlogo.astc") << QStringLiteral(":/texturefiles/newlogo.astc") << QSize(111, 78) @@ -86,6 +78,7 @@ void tst_qtexturefilereader::checkHandlers_data() << quint32(0x93b9) << quint32(0x0) << 1 + << 1 << (QList<int>() << 16) << (QList<int>() << 2496); @@ -96,6 +89,7 @@ void tst_qtexturefilereader::checkHandlers_data() << quint32(0x93d9) << quint32(0x0) << 1 + << 1 << (QList<int>() << 16) << (QList<int>() << 2496); } @@ -107,6 +101,7 @@ void tst_qtexturefilereader::checkHandlers() QFETCH(quint32, glFormat); QFETCH(quint32, glInternalFormat); QFETCH(int, levels); + QFETCH(int, faces); QFETCH(QList<int>, dataOffsets); QFETCH(QList<int>, dataLengths); @@ -122,12 +117,42 @@ void tst_qtexturefilereader::checkHandlers() QCOMPARE(tex.glFormat(), glFormat); QCOMPARE(tex.glInternalFormat(), glInternalFormat); QCOMPARE(tex.numLevels(), levels); + QCOMPARE(tex.numFaces(), faces); + for (int i = 0; i < tex.numLevels(); i++) { QCOMPARE(tex.dataOffset(i), dataOffsets.at(i)); QCOMPARE(tex.dataLength(i), dataLengths.at(i)); } } +void tst_qtexturefilereader::checkMetadata() +{ + QFile f(":/texturefiles/cubemap_metadata.ktx"); + QVERIFY(f.open(QIODevice::ReadOnly)); + QTextureFileReader r(&f); + QTextureFileData d = r.read(); + auto kvs = d.keyValueMetadata(); + + QVERIFY(kvs.contains("test A")); + QVERIFY(kvs.contains("test B")); + QVERIFY(kvs.contains("test C")); + QCOMPARE(kvs.value("test A"), QByteArrayLiteral("1\x0000")); + QCOMPARE(kvs.value("test B"), QByteArrayLiteral("2\x0000")); + QCOMPARE(kvs.value("test C"), QByteArrayLiteral("3\x0000")); +} + +void tst_qtexturefilereader::checkInvalid() +{ + QFile f(":/texturefiles/invalid.ktx"); + QVERIFY(f.open(QIODevice::ReadOnly)); + QTextureFileReader r(&f); + QTextureFileData d = r.read(); + auto kvs = d.keyValueMetadata(); + + // Basically just checking that we don't crash on and invalid file + QVERIFY(kvs.empty()); +} + QTEST_MAIN(tst_qtexturefilereader) #include "tst_qtexturefilereader.moc" |