From 4d8b7b584a61cf9cfc202b0b92f4878680bca757 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 8 Dec 2023 02:34:07 +0100 Subject: [PATCH] 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. Pick-to: 6.5 Change-Id: I2406258355295c2b1300c4ae8001cead59bb27d6 Reviewed-by: Thiago Macieira (cherry picked from commit fe8c8e0fceec09b6ac6f358d522aeae9a5550bd0) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 3446ece05671b050f2fa520a966c98a0c30c6615) --- .../tst_qduplicatetracker.cpp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) 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 #include + +#include #include class tst_QDuplicateTracker : public QObject @@ -50,6 +52,27 @@ void tst_QDuplicateTracker::hasSeen() QVERIFY(!tracker.hasSeen(string3)); QVERIFY(tracker.hasSeen(string3)); } + + { + QDuplicateTracker 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()