summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-06-06 01:28:12 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-06-06 13:29:34 +0200
commitc0f7ecab2084e3e720a012d1254f52bfbbe1446e (patch)
treed9f94b33019750f924458fde8a6a03a17eef7d52 /tests/auto/corelib/kernel
parentf133b226cdf4f2736b412bb642b45d43cb84f51d (diff)
QVariant: remove UB and fix semantics in a test
The code was reading from uninitialized memory when creating a variant. Fixing that reveals that the test semantics are broken: when dealing with datatypes without a registered operator==, QVariant resorts to memcmp, so the two objects would've actually compared equal. Amend that. Change-Id: I36bad7ee6a45154d5d534b7dd8b618cc0a900126 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests/auto/corelib/kernel')
-rw-r--r--tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
index c1c475b9c6..69322356a8 100644
--- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -2865,15 +2865,15 @@ void tst_QVariant::compareCustomTypes() const
{
qRegisterMetaType<WontCompare>("WontCompare");
- WontCompare f1;
+ WontCompare f1 = {};
f1.x = 0;
const QVariant variant1(QVariant::fromValue(f1));
- WontCompare f2;
- f2.x = 0;
+ WontCompare f2 = {};
+ f2.x = 1;
const QVariant variant2(QVariant::fromValue(f2));
- /* We compare pointers. */
+ /* We compare via memcmp. */
QVERIFY(variant1 != variant2);
QCOMPARE(variant1, variant1);
QCOMPARE(variant2, variant2);