summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <[email protected]>2023-12-08 02:34:07 +0100
committerQt Cherry-pick Bot <[email protected]>2023-12-13 07:26:01 +0000
commit2bbafaa1a4e81276e4cca9f4d03d8f15a605ed1a (patch)
tree8f039072bcafdd2dd459a776ab735a91a265b12e
parent1ab6ff832dc9dd548d2633301477f644faa661ee (diff)
QDuplicateTracker: test with std::string, too
std::string is a nice value_type for when you want to track short strings (because of its SSO). Check that it works, incl. in case the implementation falls back to QSet in the absence of std::pmr support in the stdlib. Change-Id: I2406258355295c2b1300c4ae8001cead59bb27d6 Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit fe8c8e0fceec09b6ac6f358d522aeae9a5550bd0) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 3446ece05671b050f2fa520a966c98a0c30c6615) (cherry picked from commit 4d8b7b584a61cf9cfc202b0b92f4878680bca757)
-rw-r--r--tests/auto/corelib/tools/qduplicatetracker/tst_qduplicatetracker.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qduplicatetracker/tst_qduplicatetracker.cpp b/tests/auto/corelib/tools/qduplicatetracker/tst_qduplicatetracker.cpp
index 8ea4802fa4c..4c71278a59d 100644
--- a/tests/auto/corelib/tools/qduplicatetracker/tst_qduplicatetracker.cpp
+++ b/tests/auto/corelib/tools/qduplicatetracker/tst_qduplicatetracker.cpp
@@ -6,6 +6,8 @@
#include <QtCore/private/qduplicatetracker_p.h>
#include <QObject>
+
+#include <string>
#include <utility>
class tst_QDuplicateTracker : public QObject
@@ -50,6 +52,27 @@ void tst_QDuplicateTracker::hasSeen()
QVERIFY(!tracker.hasSeen(string3));
QVERIFY(tracker.hasSeen(string3));
}
+
+ {
+ QDuplicateTracker<std::string, 2> tracker;
+ std::string string1("string1");
+ std::string string2("string2");
+ std::string string2_2("string2");
+ std::string string3("string3");
+
+ // Move when seen
+ QVERIFY(!tracker.hasSeen(string1));
+ QVERIFY(tracker.hasSeen(std::move(string1)));
+
+ // Move when unseen
+ QVERIFY(!tracker.hasSeen(std::move(string2)));
+ QVERIFY(tracker.hasSeen(string2_2));
+
+ // Past the prealloc amount
+ QVERIFY(!tracker.hasSeen(string3));
+ QVERIFY(tracker.hasSeen(string3));
+ }
+
}
void tst_QDuplicateTracker::clear()