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.7 6.6 6.5
Change-Id: I2406258355295c2b1300c4ae8001cead59bb27d6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Marc Mutz 2023-12-08 02:34:07 +01:00
parent 4d57b30194
commit fe8c8e0fce

View File

@ -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()