diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/corelib/time/qtimezone/BLACKLIST | 161 | ||||
-rw-r--r-- | tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp | 34 |
2 files changed, 20 insertions, 175 deletions
diff --git a/tests/auto/corelib/time/qtimezone/BLACKLIST b/tests/auto/corelib/time/qtimezone/BLACKLIST deleted file mode 100644 index 08fcd041ca..0000000000 --- a/tests/auto/corelib/time/qtimezone/BLACKLIST +++ /dev/null @@ -1,161 +0,0 @@ -# See qtbase/src/testlib/qtestblacklist.cpp for format - -# QTBUG-69131 -[transitionEachZone:America/Cancun@2010] -android -[transitionEachZone:America/Eirunepe@2010] -android -[transitionEachZone:America/Montevideo@2010] -android -[transitionEachZone:America/Porto_Acre@2010] -android -[transitionEachZone:America/Rio_Branco@2010] -android -[transitionEachZone:Asia/Anadyr@2010] -android -[transitionEachZone:Asia/Chita@2010] -android -[transitionEachZone:Asia/Kamchatka@2010] -android -[transitionEachZone:Asia/Khandyga@2010] -android -[transitionEachZone:Asia/Magadan@2010] -android -[transitionEachZone:Asia/Novokuznetsk@2010] -android -[transitionEachZone:Asia/Pyongyang@2010] -android -[transitionEachZone:Asia/Ust-Nera@2010] -android -[transitionEachZone:Asia/Yerevan@2010] -android -[transitionEachZone:Europe/Kaliningrad@2010] -android -[transitionEachZone:Europe/Minsk@2010] -android -[transitionEachZone:Europe/Moscow@2010] -android -[transitionEachZone:Europe/Samara@2010] -android -[transitionEachZone:Europe/Simferopol@2010] -android -[transitionEachZone:Europe/Volgograd@2010] -android -[transitionEachZone:W-SU@2010] -android -[transitionEachZone:Africa/Bissau@1970] -android -[transitionEachZone:Africa/Juba@1970] -android -[transitionEachZone:Africa/Khartoum@1970] -android -[transitionEachZone:America/Metlakatla@1970] -android -[transitionEachZone:America/Montevideo@1970] -android -[transitionEachZone:America/Paramaribo@1970] -android -[transitionEachZone:America/Santarem@1970] -android -[transitionEachZone:America/Santo_Domingo@1970] -android -[transitionEachZone:Asia/Anadyr@1970] -android -[transitionEachZone:Asia/Bahrain@1970] -android -[transitionEachZone:Asia/Chita@1970] -android -[transitionEachZone:Asia/Dushanbe@1970] -android -[transitionEachZone:Asia/Ho_Chi_Minh@1970] -android -[transitionEachZone:Asia/Kathmandu@1970] -android -[transitionEachZone:Asia/Katmandu@1970] -android -[transitionEachZone:Asia/Kuala_Lumpur@1970] -android -[transitionEachZone:Asia/Magadan@1970] -android -[transitionEachZone:Asia/Novosibirsk@1970] -android -[transitionEachZone:Asia/Pontianak@1970] -android -[transitionEachZone:Asia/Pyongyang@1970] -android -[transitionEachZone:Asia/Qatar@1970] -android -[transitionEachZone:Asia/Qyzylorda@1970] -android -[transitionEachZone:Asia/Saigon@1970] -android -[transitionEachZone:Asia/Sakhalin@1970] -android -[transitionEachZone:Asia/Singapore@1970] -android -[transitionEachZone:Asia/Tashkent@1970] -android -[transitionEachZone:Asia/Thimbu@1970] -android -[transitionEachZone:Asia/Thimphu@1970] -android -[transitionEachZone:Asia/Ust-Nera@1970] -android -[transitionEachZone:Atlantic/Cape_Verde@1970] -android -[transitionEachZone:Chile/EasterIsland@1970] -android -[transitionEachZone:Europe/Kaliningrad@1970] -android -[transitionEachZone:Pacific/Bougainville@1970] -android -[transitionEachZone:Pacific/Easter@1970] -android -[transitionEachZone:Pacific/Enderbury@1970] -android -[transitionEachZone:Pacific/Galapagos@1970] -android -[transitionEachZone:Pacific/Kiritimati@1970] -android -[transitionEachZone:Pacific/Kosrae@1970] -android -[transitionEachZone:Pacific/Kwajalein@1970] -android -[transitionEachZone:Pacific/Nauru@1970] -android -[transitionEachZone:Pacific/Niue@1970] -android -[transitionEachZone:Singapore@1970] -android -[transitionEachZone:Brazil/Acre@2010] -android -[transitionEachZone:Pacific/Bougainville@2010] -android -[transitionEachZone:Africa/Algiers@1970] -android -[transitionEachZone:Africa/Monrovia@1970] -android -[transitionEachZone:Kwajalein@1970] -android -[transitionEachZone:Indian/Chagos@1970] -android -[transitionEachZone:Europe/Volgograd@1970] -android -[transitionEachZone:Atlantic/Stanley@1970] -android -[transitionEachZone:Antarctica/Mawson@1970] -android -[transitionEachZone:America/Swift_Current@1970] -android -[transitionEachZone:America/Guyana@1970] -android -[transitionEachZone:America/Grand_Turk@1970] -android -[transitionEachZone:America/Dawson_Creek@1970] -android -[transitionEachZone:America/Cancun@1970] -android -[transitionEachZone:America/Caracas@1970] -android -[transitionEachZone:America/Danmarkshavn@1970] -android diff --git a/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp b/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp index 0200085726..ca7ddf0c2d 100644 --- a/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp +++ b/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp @@ -577,7 +577,7 @@ void tst_QTimeZone::transitionEachZone_data() QTest::addColumn<int>("start"); QTest::addColumn<int>("stop"); - struct { + const struct { qint64 baseSecs; int start, stop; int year; @@ -587,7 +587,7 @@ void tst_QTimeZone::transitionEachZone_data() }; const auto zones = QTimeZone::availableTimeZoneIds(); - for (int k = sizeof(table) / sizeof(table[0]); k-- > 0; ) { + for (int k = std::size(table); k-- > 0; ) { for (const QByteArray &zone : zones) { const QString name = QString::asprintf("%s@%d", zone.constData(), table[k].year); QTest::newRow(name.toUtf8().constData()) @@ -603,25 +603,31 @@ void tst_QTimeZone::transitionEachZone() { // Regression test: round-trip fromMsecs/toMSecs should be idempotent; but // various zones failed during fall-back transitions. - QFETCH(QByteArray, zone); - QFETCH(qint64, secs); - QFETCH(int, start); - QFETCH(int, stop); - QTimeZone named(zone); + QFETCH(const QByteArray, zone); + QFETCH(const qint64, secs); + QFETCH(const int, start); + QFETCH(const int, stop); + const QTimeZone named(zone); + if (!named.isValid()) + QSKIP("Supposedly available zone is not valid"); + if (named.id() != zone) + QSKIP("Supposedly available zone's id does not match"); for (int i = start; i < stop; i++) { #ifdef USING_WIN_TZ // See QTBUG-64985: MS's TZ APIs' misdescription of Europe/Samara leads // to mis-disambiguation of its fall-back here. - if (zone == "Europe/Samara" && i == -3) { + if (zone == "Europe/Samara" && i == -3) continue; - } #endif - qint64 here = secs + i * 3600; - QDateTime when = QDateTime::fromMSecsSinceEpoch(here * 1000, named); - qint64 stamp = when.toMSecsSinceEpoch(); - if (here * 1000 != stamp) // (The +1 is due to using *1*:30 as baseSecs.) - qDebug() << "Failing for" << zone << "at half past" << (i + 1) << "UTC"; + const qint64 here = secs + i * 3600; + const QDateTime when = QDateTime::fromSecsSinceEpoch(here, named); + const qint64 stamp = when.toMSecsSinceEpoch(); + if (here * 1000 != stamp) { + // (The +1 is due to using _1_:30 as baseSecs.) + qDebug("Failing at half past %d UTC (offset %d in %s)", i + 1, when.offsetFromUtc(), + QLocale::countryToString(named.country()).toUtf8().constData()); + } QCOMPARE(stamp % 1000, 0); QCOMPARE(here - stamp / 1000, 0); } |