diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2012-11-02 11:13:15 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-16 06:38:01 +0100 |
commit | 8cb319939a4d23cf4a98e9cffe15b81f31d893b6 (patch) | |
tree | 717d1aee2e4f529f8eb8d8d96d16ae6f39723564 /tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp | |
parent | 2b308d4cb5cdf2f3374404c83dc0b193fcb78612 (diff) |
Fix QStringList::sort test
Checking that the result of sort() is a specific list is wrong,
as sort() can put equivalent elements in an arbitrary order.
Change-Id: Ib06399cdecedb6cf01e721d4d92048449d66b40d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp')
-rw-r--r-- | tests/auto/corelib/tools/qstringlist/tst_qstringlist.cpp | 9 |
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 |