summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2021-01-08 13:48:51 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-02-02 11:56:16 +0000
commit8b1194edea390f5608526a7f15cc562a3f17656b (patch)
treec77d8c1ceb81bf905efb623b5cea480ac5b8a354 /tests/auto/corelib
parentf1efd15d430f8d00cf1839b600a9e4b5771b8e38 (diff)
Correct string comparison in Android's IANA ID matching code
It used QString.compare() and assumed it was returning a bool true on equality, when it actually returns an int that compares to 0 as the given strings compare. So it should use compare() == 0. This fixes several of QTimeZone's blacklisted tests on Android and a crasher, which we dodged with a QSKIP. Added an id-comparison to a test. Gave two local variables more informative names, made an early return into a QSKIP so it explains itself. Fixes: QTBUG-89905 Fixes: QTBUG-69122 Fixes: QTBUG-69132 Fixes: QTBUG-87435 Change-Id: Icf18ed5a810143d6e65d36e34a70e82faac10b8e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> (cherry picked from commit 6ee13db700eecd8dfed54a9ec2d1081b39511562) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r--tests/auto/corelib/time/qtimezone/BLACKLIST15
-rw-r--r--tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp27
2 files changed, 11 insertions, 31 deletions
diff --git a/tests/auto/corelib/time/qtimezone/BLACKLIST b/tests/auto/corelib/time/qtimezone/BLACKLIST
index ddc9a107c0..1f4811d4b8 100644
--- a/tests/auto/corelib/time/qtimezone/BLACKLIST
+++ b/tests/auto/corelib/time/qtimezone/BLACKLIST
@@ -1,7 +1,3 @@
-# QTBUG-69122
-[dataStreamTest]
-android
-
# QTBUG-69129
[specificTransition]
android
@@ -173,14 +169,3 @@ android
android
[transitionEachZone:America/Danmarkshavn@1970]
android
-# QTBUG-87435
-[createTest]
-android
-[systemZone]
-android
-[utcOffsetId]
-android
-[stressTest]
-android
-[serialize]
-android
diff --git a/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp b/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp
index a86816d6a9..bb6a264de6 100644
--- a/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp
+++ b/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp
@@ -155,25 +155,23 @@ void tst_QTimeZone::printTimeZone(const QTimeZone &tz)
void tst_QTimeZone::createTest()
{
- QTimeZone tz("Pacific/Auckland");
+ const QTimeZone tz("Pacific/Auckland");
if (debug)
printTimeZone(tz);
// If the tz is not valid then skip as is probably using the UTC backend which is tested later
if (!tz.isValid())
- return;
-
- // Validity tests
- QCOMPARE(tz.isValid(), true);
+ QSKIP("System lacks zone used for test"); // This returns.
- // Comparison tests
- QTimeZone tz2("Pacific/Auckland");
- QTimeZone tz3("Australia/Sydney");
- QCOMPARE((tz == tz2), true);
- QCOMPARE((tz != tz2), false);
- QCOMPARE((tz == tz3), false);
- QCOMPARE((tz != tz3), true);
+ QCOMPARE(tz.id(), "Pacific/Auckland");
+ // Comparison tests:
+ const QTimeZone same("Pacific/Auckland");
+ QCOMPARE((tz == same), true);
+ QCOMPARE((tz != same), false);
+ const QTimeZone other("Australia/Sydney");
+ QCOMPARE((tz == other), false);
+ QCOMPARE((tz != other), true);
QCOMPARE(tz.country(), QLocale::NewZealand);
@@ -447,6 +445,7 @@ void tst_QTimeZone::utcOffsetId_data()
ROW("UTC+12:00", true, 43200);
ROW("UTC+13:00", true, 46800);
ROW("UTC+14:00", true, 50400);
+
// Windows IDs known to CLDR v35.1:
ROW("UTC-11", true, -39600);
ROW("UTC-09", true, -32400);
@@ -610,10 +609,6 @@ void tst_QTimeZone::transitionEachZone()
continue;
}
#endif
-#ifdef Q_OS_ANDROID
- if (zone == "America/Mazatlan" || zone == "Mexico/BajaSur")
- QSKIP("Crashes on Android, see QTBUG-69132");
-#endif
qint64 here = secs + i * 3600;
QDateTime when = QDateTime::fromMSecsSinceEpoch(here * 1000, named);
qint64 stamp = when.toMSecsSinceEpoch();