summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2020-03-31 08:48:56 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2020-06-02 22:42:15 +0200
commit47c6466d0acc6d8d733b4fdbaf980a60bbfc93ef (patch)
tree31aad5a433def4b15fbfca44d5be1e0f94f3fcfd /tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
parent649d834443326bfef6ad296cd53819121b8d1a17 (diff)
QMetaType: create metatype for void
Create a QMetaTypeInterface for void. This allows us differentiate QMetaType::Unknown from QMetaType::Void. In addition, this will enable the usage of QMetaMethod::metaReturnType in QMetaMethod::returnType, and will facilitate using metaReturnType in declarative, which needs to distinguish between Unknown and Void. Change-Id: I83296b49587f3deb7ec73e25a33f0d8c98cf8da0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp')
-rw-r--r--tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
index f144aad7e4..d036be55c6 100644
--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -127,6 +127,7 @@ private slots:
void operatorEq_data();
void operatorEq();
void typesWithInaccessibleDTors();
+ void voidIsNotUnknown();
};
struct BaseGenericType
@@ -1339,7 +1340,7 @@ void tst_QMetaType::isRegistered_data()
QTest::addColumn<bool>("registered");
// predefined/custom types
- QTest::newRow("QMetaType::Void") << int(QMetaType::Void) << false;
+ QTest::newRow("QMetaType::Void") << int(QMetaType::Void) << true;
QTest::newRow("QMetaType::Int") << int(QMetaType::Int) << true;
int dummyTypeId = qRegisterMetaType<IsRegisteredDummyType>("IsRegisteredDummyType");
@@ -2548,7 +2549,7 @@ void tst_QMetaType::operatorEq_data()
QTest::newRow("String") << QMetaType(QMetaType::QString)
<< QMetaType::fromType<const QString &>() << true;
QTest::newRow("void1") << QMetaType(QMetaType::UnknownType) << QMetaType::fromType<void>()
- << true;
+ << false;
QTest::newRow("void2") << QMetaType::fromType<const void>() << QMetaType::fromType<void>()
<< true;
QTest::newRow("vec1") << QMetaType::fromType<QVector<const int *>>()
@@ -2590,6 +2591,14 @@ void tst_QMetaType::typesWithInaccessibleDTors()
Q_UNUSED(QMetaType::fromType<WithDeletedDtor>());
}
+void tst_QMetaType::voidIsNotUnknown()
+{
+ QMetaType voidType = QMetaType::fromType<void>();
+ QMetaType voidType2 = QMetaType(QMetaType::Void);
+ QCOMPARE(voidType, voidType2);
+ QVERIFY(voidType != QMetaType(QMetaType::UnknownType));
+}
+
// Compile-time test, it should be possible to register function pointer types
class Undefined;