Add test for qHash(QString) / qHash(QStringRef)
authorGiuseppe D'Angelo <dangelog@gmail.com>
Wed, 4 Apr 2012 19:44:33 +0000 (20:44 +0100)
committerQt by Nokia <qt-info@nokia.com>
Fri, 6 Apr 2012 13:16:23 +0000 (15:16 +0200)
Two equal strings / stringrefs must return the same hash.

Change-Id: I2af9a11ab721ca25f4039048a7e5f260e6ff0148
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
tests/auto/corelib/tools/qstring/tst_qstring.cpp

index 9739448..dda4c52 100644 (file)
@@ -51,6 +51,7 @@
 
 #include <qlocale.h>
 #include <locale.h>
+#include <qhash.h>
 
 Q_DECLARE_METATYPE(qlonglong)
 
@@ -4929,6 +4930,13 @@ void tst_QString::compare()
     QCOMPARE(sign(QStringRef::compare(r1, r2, Qt::CaseSensitive)), csr);
     QCOMPARE(sign(QStringRef::compare(r1, r2, Qt::CaseInsensitive)), cir);
 
+    if (csr == 0) {
+        QVERIFY(qHash(s1) == qHash(s2));
+        QVERIFY(qHash(s1) == qHash(r2));
+        QVERIFY(qHash(r1) == qHash(s2));
+        QVERIFY(qHash(r1) == qHash(r2));
+    }
+
     if (!cir) {
         QCOMPARE(s1.toCaseFolded(), s2.toCaseFolded());
     }