qt 6.5.1 original

This commit is contained in:
kleuter
2023-10-29 23:33:08 +01:00
parent 71d22ab6b0
commit 85d238dfda
21202 changed files with 5499099 additions and 0 deletions

View File

@ -0,0 +1,5 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
add_subdirectory(qguimetatype)
add_subdirectory(qguivariant)

View File

@ -0,0 +1,14 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
#####################################################################
## tst_bench_qguimetatype Binary:
#####################################################################
qt_internal_add_benchmark(tst_bench_qguimetatype
SOURCES
tst_qguimetatype.cpp
LIBRARIES
Qt::Gui
Qt::Test
)

View File

@ -0,0 +1,83 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <qtest.h>
#include <QtCore/qmetatype.h>
#include <QScopeGuard>
class tst_QGuiMetaType : public QObject
{
Q_OBJECT
private slots:
void constructInPlace_data();
void constructInPlace();
void constructInPlaceCopy_data();
void constructInPlaceCopy();
private:
void constructableGuiTypes();
};
void tst_QGuiMetaType::constructableGuiTypes()
{
QTest::addColumn<int>("typeId");
for (int i = QMetaType::FirstGuiType; i <= QMetaType::LastGuiType; ++i) {
if (QMetaType metaType(i); metaType.isValid())
QTest::newRow(metaType.name()) << i;
}
}
void tst_QGuiMetaType::constructInPlace_data()
{
constructableGuiTypes();
}
void tst_QGuiMetaType::constructInPlace()
{
QFETCH(int, typeId);
QMetaType type(typeId);
int size = type.sizeOf();
void *storage = qMallocAligned(size, 2 * sizeof(qlonglong));
auto cleanUp = qScopeGuard([&]() {
qFreeAligned(storage);
});
QCOMPARE(type.construct(storage, /*copy=*/0), storage);
type.destruct(storage);
QBENCHMARK {
for (int i = 0; i < 100000; ++i) {
type.construct(storage, /*copy=*/0);
type.destruct(storage);
}
}
}
void tst_QGuiMetaType::constructInPlaceCopy_data()
{
constructableGuiTypes();
}
void tst_QGuiMetaType::constructInPlaceCopy()
{
QFETCH(int, typeId);
QMetaType type(typeId);
int size = type.sizeOf();
void *storage = qMallocAligned(size, 2 * sizeof(qlonglong));
void *other = type.create();
auto cleanUp = qScopeGuard([&]() {
type.destroy(other);
qFreeAligned(storage);
});
QCOMPARE(type.construct(storage, other), storage);
type.destruct(storage);
QBENCHMARK {
for (int i = 0; i < 100000; ++i) {
type.construct(storage, other);
type.destruct(storage);
}
}
}
QTEST_MAIN(tst_QGuiMetaType)
#include "tst_qguimetatype.moc"

View File

@ -0,0 +1,14 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause
#####################################################################
## tst_bench_qguivariant Binary:
#####################################################################
qt_internal_add_benchmark(tst_bench_qguivariant
SOURCES
tst_qguivariant.cpp
LIBRARIES
Qt::Gui
Qt::Test
)

View File

@ -0,0 +1,75 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <qtest.h>
#include <QtCore/qvariant.h>
#define ITERATION_COUNT 1e5
class tst_QGuiVariant : public QObject
{
Q_OBJECT
public:
tst_QGuiVariant();
virtual ~tst_QGuiVariant();
private slots:
void createGuiType_data();
void createGuiType();
void createGuiTypeCopy_data();
void createGuiTypeCopy();
};
tst_QGuiVariant::tst_QGuiVariant()
{
}
tst_QGuiVariant::~tst_QGuiVariant()
{
}
void tst_QGuiVariant::createGuiType_data()
{
QTest::addColumn<int>("typeId");
for (int i = QMetaType::FirstGuiType; i <= QMetaType::LastGuiType; ++i) {
if (QMetaType metaType(i); metaType.isValid())
QTest::newRow(metaType.name()) << i;
}
}
// Tests how fast a Qt GUI type can be default-constructed by a
// QVariant. The purpose of this benchmark is to measure the overhead
// of creating (and destroying) a QVariant compared to creating the
// type directly.
void tst_QGuiVariant::createGuiType()
{
QFETCH(int, typeId);
QBENCHMARK {
for (int i = 0; i < ITERATION_COUNT; ++i)
QVariant(QMetaType(typeId));
}
}
void tst_QGuiVariant::createGuiTypeCopy_data()
{
createGuiType_data();
}
// Tests how fast a Qt GUI type can be copy-constructed by a
// QVariant. The purpose of this benchmark is to measure the overhead
// of creating (and destroying) a QVariant compared to creating the
// type directly.
void tst_QGuiVariant::createGuiTypeCopy()
{
QFETCH(int, typeId);
QVariant other((QMetaType(typeId)));
const void *copy = other.constData();
QBENCHMARK {
for (int i = 0; i < ITERATION_COUNT; ++i)
QVariant(QMetaType(typeId), copy);
}
}
QTEST_MAIN(tst_QGuiVariant)
#include "tst_qguivariant.moc"