summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/util/qtexturefilereader
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/util/qtexturefilereader')
-rw-r--r--tests/auto/gui/util/qtexturefilereader/CMakeLists.txt31
-rw-r--r--tests/auto/gui/util/qtexturefilereader/qtexturefilereader.qrc9
-rw-r--r--tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_float32_rgba.ktxbin0 -> 32848 bytes
-rw-r--r--tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_metadata.ktxbin0 -> 4916 bytes
-rw-r--r--tests/auto/gui/util/qtexturefilereader/texturefiles/invalid.ktxbin0 -> 69 bytes
-rw-r--r--tests/auto/gui/util/qtexturefilereader/tst_qtexturefilereader.cpp79
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
new file mode 100644
index 0000000000..25b48b1370
--- /dev/null
+++ b/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_float32_rgba.ktx
Binary files differ
diff --git a/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_metadata.ktx b/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_metadata.ktx
new file mode 100644
index 0000000000..a29f68a7c9
--- /dev/null
+++ b/tests/auto/gui/util/qtexturefilereader/texturefiles/cubemap_metadata.ktx
Binary files differ
diff --git a/tests/auto/gui/util/qtexturefilereader/texturefiles/invalid.ktx b/tests/auto/gui/util/qtexturefilereader/texturefiles/invalid.ktx
new file mode 100644
index 0000000000..68a92221db
--- /dev/null
+++ b/tests/auto/gui/util/qtexturefilereader/texturefiles/invalid.ktx
Binary files differ
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"