summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2023-01-05 10:06:33 -0300
committerMarc Mutz <marc.mutz@qt.io>2023-01-20 03:19:21 +0000
commitfc8dad2f10e7976cfa778ca7d75e651012629b21 (patch)
treec0a90c896f76388d5c03ddb7998dd9d435a81086 /tests
parent3d584b1093cdb6245b02eda996db2927ffaf09ea (diff)
QUrlQuery: add missing move constructor
It wasn't added when this class was created in 5.0 because we couldn't add move constructors and still keep the ability to compile Qt with C++98 compilers. We've forgot to correct this shortcoming since 5.6. Fixes: QTBUG-109842 Pick-to: 6.5 Change-Id: I69ecc04064514f939896fffd17376b8243b73c52 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/io/qurlquery/tst_qurlquery.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qurlquery/tst_qurlquery.cpp b/tests/auto/corelib/io/qurlquery/tst_qurlquery.cpp
index 41482f4256..deb6fce563 100644
--- a/tests/auto/corelib/io/qurlquery/tst_qurlquery.cpp
+++ b/tests/auto/corelib/io/qurlquery/tst_qurlquery.cpp
@@ -172,6 +172,7 @@ void tst_QUrlQuery::constructing()
QVERIFY(other != empty);
QVERIFY(!(other == empty));
+ // copy-construct
QUrlQuery copy(other);
QCOMPARE(copy, other);
@@ -179,10 +180,33 @@ void tst_QUrlQuery::constructing()
QVERIFY(copy.isEmpty());
QVERIFY(copy != other);
+ // copy-assign
copy = other;
QVERIFY(!copy.isEmpty());
QCOMPARE(copy, other);
+ // move-construct
+ QUrlQuery moved(std::move(other));
+ QCOMPARE(moved, copy);
+
+ // self move-assign
+ moved = std::move(moved);
+ QCOMPARE(moved, copy);
+
+ // self move-assign of moved-from (Hinnant Criterion)
+ other = std::move(other);
+ // shouldn't crash; here, or further down
+
+ // copy-assign to moved-from object
+ other = copy;
+ QCOMPARE(other, copy);
+ QCOMPARE(other, moved);
+
+ // move-assign
+ moved = std::move(other);
+ QCOMPARE(moved, copy);
+
+ // (move-)assign default-constructed
copy = QUrlQuery();
QVERIFY(copy.isEmpty());