diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-08-12 13:05:02 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-08-12 13:05:02 +0200 |
commit | ca524e5b70ccfeb6386cf0c5df83ffb86a8771fe (patch) | |
tree | 245c471373516ccda2b0c91943a42cd74674f2da /tests/auto/corelib/tools/qmap/tst_qmap.cpp | |
parent | b08cc0ec6f096d0e6764486c81264c24a406bee1 (diff) | |
parent | c2badc7423b63824902d1f44a4b804de3335c20b (diff) |
Merge remote-tracking branch 'origin/5.3' into 5.4
Manually included changes from
3a347a4e70e5a10ee92dd2578316c926a399e894
in src/opengl/qgl.cpp.
Conflicts:
src/opengl/qgl_qpa.cpp
src/plugins/platforms/android/androidjnimain.cpp
Change-Id: Ic26b58ee587d4884c9d0fba45c5a94b5a45ee929
Diffstat (limited to 'tests/auto/corelib/tools/qmap/tst_qmap.cpp')
-rw-r--r-- | tests/auto/corelib/tools/qmap/tst_qmap.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qmap/tst_qmap.cpp b/tests/auto/corelib/tools/qmap/tst_qmap.cpp index 3daab73cc2..108dc35907 100644 --- a/tests/auto/corelib/tools/qmap/tst_qmap.cpp +++ b/tests/auto/corelib/tools/qmap/tst_qmap.cpp @@ -89,6 +89,12 @@ private slots: void eraseValidIteratorOnSharedMap(); }; +struct IdentityTracker { + int value, id; +}; + +inline bool operator<(IdentityTracker lhs, IdentityTracker rhs) { return lhs.value < rhs.value; } + typedef QMap<QString, QString> StringMap; class MyClass @@ -1122,6 +1128,33 @@ void tst_QMap::insert() QCOMPARE(intMap.size(), 1000); QCOMPARE(intMap.value(i), -1); } + + { + QMap<IdentityTracker, int> map; + QCOMPARE(map.size(), 0); + const int dummy = -1; + IdentityTracker id00 = {0, 0}, id01 = {0, 1}, searchKey = {0, dummy}; + QCOMPARE(map.insert(id00, id00.id).key().id, id00.id); + QCOMPARE(map.size(), 1); + QCOMPARE(map.insert(id01, id01.id).key().id, id00.id); // first key inserted is kept + QCOMPARE(map.size(), 1); + QCOMPARE(map.find(searchKey).value(), id01.id); // last-inserted value + QCOMPARE(map.find(searchKey).key().id, id00.id); // but first-inserted key + } + { + QMultiMap<IdentityTracker, int> map; + QCOMPARE(map.size(), 0); + const int dummy = -1; + IdentityTracker id00 = {0, 0}, id01 = {0, 1}, searchKey = {0, dummy}; + QCOMPARE(map.insert(id00, id00.id).key().id, id00.id); + QCOMPARE(map.size(), 1); + QCOMPARE(map.insert(id01, id01.id).key().id, id01.id); + QCOMPARE(map.size(), 2); + QMultiMap<IdentityTracker, int>::const_iterator pos = map.constFind(searchKey); + QCOMPARE(pos.value(), pos.key().id); // key fits to value it was inserted with + ++pos; + QCOMPARE(pos.value(), pos.key().id); // key fits to value it was inserted with + } } void tst_QMap::checkMostLeftNode() |