summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-01-07 09:20:00 +0100
committerMarc Mutz <marc.mutz@qt.io>2022-01-07 14:31:38 +0100
commite6cd1eb0791bde5d61e6c4aa2275bc7050e0c1d1 (patch)
tree2d2a4ead53acdb969bcecbac984ad97e74eb30a4 /tests/auto/corelib/tools
parentfaa26be44cd7306c8ec2276131414866d3de712d (diff)
QFlatMap: fix mixed rvalue/lvalue insert overloads
They never worked. Pick-to: 6.3 6.2 Change-Id: I9a15c848416419823f28ea580248fbe93a4365dd Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'tests/auto/corelib/tools')
-rw-r--r--tests/auto/corelib/tools/qflatmap/tst_qflatmap.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qflatmap/tst_qflatmap.cpp b/tests/auto/corelib/tools/qflatmap/tst_qflatmap.cpp
index 674d9fa6c0..f8f48d7bfb 100644
--- a/tests/auto/corelib/tools/qflatmap/tst_qflatmap.cpp
+++ b/tests/auto/corelib/tools/qflatmap/tst_qflatmap.cpp
@@ -45,6 +45,7 @@ private slots:
void constructing();
void constAccess();
void insertion();
+ void insertRValuesAndLValues();
void removal();
void extraction();
void iterators();
@@ -156,6 +157,42 @@ void tst_QFlatMap::insertion()
QCOMPARE(m.value("gnampf").data(), "GNAMPF");
}
+void tst_QFlatMap::insertRValuesAndLValues()
+{
+ using Map = QFlatMap<QByteArray, QByteArray>;
+ const QByteArray foo = QByteArrayLiteral("foo");
+ const QByteArray bar = QByteArrayLiteral("bar");
+
+ auto rvalue = [](const QByteArray &ba) { return ba; };
+#define lvalue(x) x
+
+ {
+ Map m;
+ QVERIFY( m.insert(lvalue(foo), lvalue(bar)).second);
+ QVERIFY(!m.insert(lvalue(foo), lvalue(bar)).second);
+ }
+
+ {
+ Map m;
+ QVERIFY( m.insert(lvalue(foo), rvalue(bar)).second);
+ QVERIFY(!m.insert(lvalue(foo), rvalue(bar)).second);
+ }
+
+ {
+ Map m;
+ QVERIFY( m.insert(rvalue(foo), lvalue(bar)).second);
+ QVERIFY(!m.insert(rvalue(foo), lvalue(bar)).second);
+ }
+
+ {
+ Map m;
+ QVERIFY( m.insert(rvalue(foo), rvalue(bar)).second);
+ QVERIFY(!m.insert(rvalue(foo), rvalue(bar)).second);
+ }
+
+#undef lvalue
+}
+
void tst_QFlatMap::extraction()
{
using Map = QFlatMap<int, QByteArray>;