summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qarraydata
diff options
context:
space:
mode:
authorJoão Abecasis <joao.abecasis@nokia.com>2012-03-07 14:09:45 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-15 23:01:13 +0100
commitc67efb6506b16608921208c9f45a65abb97de029 (patch)
treeda6f6482cc2c3a233e5938e1b42db01195112b53 /tests/auto/corelib/tools/qarraydata
parent801832b8a39aef224d55c892022b6f9008ffc894 (diff)
Fix invalid read, detected by valgrind
Commit 3fe1eed0 changed the QVERIFY in line 1354 to QCOMPARE. This was done to work around a (not yet understood) compiler issue. That however was wrong, as char pointers in QCOMPARE are assumed to point to '\0'-terminated strings and will get dereferenced. In this case the intent was to compare the actual pointer values, as the pointers point past the end of the array and should not be dereferenced. Explicitly casting to (void *) and using QCOMPARE will not only keep the intent, it will hopefully also provide meaningful output on failures. As such the fix was applied throughout the test. Change-Id: Ib0968df492ccc11d7c391bb69037cd7241e55493 Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Diffstat (limited to 'tests/auto/corelib/tools/qarraydata')
-rw-r--r--tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
index 7ea91bc538..9bfbac0017 100644
--- a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
+++ b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
@@ -314,11 +314,11 @@ void tst_QArrayData::simpleVector()
QVERIFY(!v1.isSharedWith(v5));
QVERIFY(!v1.isSharedWith(v6));
- QVERIFY(v1.constBegin() == v1.constEnd());
- QVERIFY(v4.constBegin() == v4.constEnd());
- QVERIFY(v6.constBegin() + v6.size() == v6.constEnd());
- QVERIFY(v7.constBegin() + v7.size() == v7.constEnd());
- QVERIFY(v8.constBegin() + v8.size() == v8.constEnd());
+ QCOMPARE((void *)v1.constBegin(), (void *)v1.constEnd());
+ QCOMPARE((void *)v4.constBegin(), (void *)v4.constEnd());
+ QCOMPARE((void *)(v6.constBegin() + v6.size()), (void *)v6.constEnd());
+ QCOMPARE((void *)(v7.constBegin() + v7.size()), (void *)v7.constEnd());
+ QCOMPARE((void *)(v8.constBegin() + v8.size()), (void *)v8.constEnd());
QVERIFY(v1 == v2);
QVERIFY(v1 == v3);
@@ -1216,7 +1216,7 @@ void tst_QArrayData::fromRawData()
QCOMPARE(raw.size(), size_t(11));
QCOMPARE(raw.constBegin(), array);
- QCOMPARE(raw.constEnd(), array + sizeof(array)/sizeof(array[0]));
+ QCOMPARE((void *)raw.constEnd(), (void *)(array + sizeof(array)/sizeof(array[0])));
QVERIFY(!raw.isShared());
QVERIFY(SimpleVector<int>(raw).isSharedWith(raw));
@@ -1234,7 +1234,7 @@ void tst_QArrayData::fromRawData()
QCOMPARE(raw.size(), size_t(11));
QCOMPARE(raw.constBegin(), array);
- QCOMPARE(raw.constEnd(), array + sizeof(array)/sizeof(array[0]));
+ QCOMPARE((void *)raw.constEnd(), (void *)(array + sizeof(array)/sizeof(array[0])));
SimpleVector<int> copy(raw);
QVERIFY(!copy.isSharedWith(raw));
@@ -1247,7 +1247,7 @@ void tst_QArrayData::fromRawData()
QCOMPARE(raw.size(), size_t(11));
QCOMPARE(raw.constBegin(), array);
- QCOMPARE(raw.constEnd(), array + sizeof(array)/sizeof(array[0]));
+ QCOMPARE((void *)raw.constEnd(), (void *)(array + sizeof(array)/sizeof(array[0])));
// Detach
QCOMPARE(raw.back(), 11);
@@ -1286,7 +1286,7 @@ void tst_QArrayData::literals()
#endif
QVERIFY(v.isSharable());
- QCOMPARE(v.constBegin() + v.size(), v.constEnd());
+ QCOMPARE((void *)(v.constBegin() + v.size()), (void *)v.constEnd());
for (int i = 0; i < 10; ++i)
QCOMPARE(const_(v)[i], char('A' + i));
@@ -1335,7 +1335,7 @@ void tst_QArrayData::variadicLiterals()
QVERIFY(v.isStatic());
QVERIFY(v.isSharable());
- QVERIFY(v.constBegin() + v.size() == v.constEnd());
+ QCOMPARE((void *)(v.constBegin() + v.size()), (void *)v.constEnd());
for (int i = 0; i < 7; ++i)
QCOMPARE(const_(v)[i], i);