summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qstringlist
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/tools/qstringlist')
-rw-r--r--tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp b/tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp
index ef549bc660..56dc1ed97c 100644
--- a/tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp
+++ b/tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp
@@ -228,7 +228,14 @@ void tst_QStringList::sort()
list3 << "alpha" << "beta" << "BETA" << "gamma" << "Gamma" << "gAmma" << "epsilon";
list3.sort(Qt::CaseInsensitive);
list4 << "alpha" << "beta" << "BETA" << "epsilon" << "Gamma" << "gAmma" << "gamma";
- QCOMPARE( list3, list4 );
+ // with this list, case insensitive sorting can give more than one permutation for "equivalent"
+ // elements; so we check that the sort gave the formally correct result (list[i] <= list[i+1])
+ for (int i = 0; i < list4.count() - 1; ++i)
+ QVERIFY2(QString::compare(list4.at(i), list4.at(i + 1), Qt::CaseInsensitive) <= 0, qPrintable(QString("index %1 failed").arg(i)));
+ // additional checks
+ QCOMPARE(list4.at(0), QString("alpha"));
+ QVERIFY(list4.indexOf("epsilon") > 0);
+ QVERIFY(list4.indexOf("epsilon") < (list4.count() - 1));
#ifdef Q_OS_WINCE
SetUserDefaultLCID(oldLcid);
#else