From bcc15f36cc87cd53f083d0c6764fa093e89ad940 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 24 Nov 2021 17:39:40 +0100 Subject: Check for relevant zones existing when adding data rows tst_QDate::startOfDay_endOfDay_data() naively assumed some zones would exist. They don't on QNX, apparently. Change-Id: I3a364964d03f59f5869b4b7639f089dd303180b1 Reviewed-by: Andreas Buhr Reviewed-by: Andrei Golubev --- tests/auto/corelib/time/qdate/tst_qdate.cpp | 34 +++++++++++++++++++---------- 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'tests/auto/corelib') diff --git a/tests/auto/corelib/time/qdate/tst_qdate.cpp b/tests/auto/corelib/time/qdate/tst_qdate.cpp index 6f8699bc98..b14903f92f 100644 --- a/tests/auto/corelib/time/qdate/tst_qdate.cpp +++ b/tests/auto/corelib/time/qdate/tst_qdate.cpp @@ -475,23 +475,32 @@ void tst_QDate::startOfDay_endOfDay_data() const QTime initial(0, 0), final(23, 59, 59, 999), invalid(QDateTime().time()); + // UTC is always a valid zone. QTest::newRow("epoch") << QDate(1970, 1, 1) << QByteArray("UTC") << initial << final; - QTest::newRow("Brazil") - << QDate(2008, 10, 19) << QByteArray("America/Sao_Paulo") - << QTime(1, 0) << final; + if (QTimeZone("America/Sao_Paulo").isValid()) { + QTest::newRow("Brazil") + << QDate(2008, 10, 19) << QByteArray("America/Sao_Paulo") + << QTime(1, 0) << final; + } #if QT_CONFIG(icu) || !defined(Q_OS_WIN) // MS's TZ APIs lack data - QTest::newRow("Sofia") - << QDate(1994, 3, 27) << QByteArray("Europe/Sofia") - << QTime(1, 0) << final; + if (QTimeZone("Europe/Sofia").isValid()) { + QTest::newRow("Sofia") + << QDate(1994, 3, 27) << QByteArray("Europe/Sofia") + << QTime(1, 0) << final; + } #endif - QTest::newRow("Kiritimati") - << QDate(1994, 12, 31) << QByteArray("Pacific/Kiritimati") - << invalid << invalid; - QTest::newRow("Samoa") - << QDate(2011, 12, 30) << QByteArray("Pacific/Apia") - << invalid << invalid; + if (QTimeZone("Pacific/Kiritimati").isValid()) { + QTest::newRow("Kiritimati") + << QDate(1994, 12, 31) << QByteArray("Pacific/Kiritimati") + << invalid << invalid; + } + if (QTimeZone("Pacific/Apia").isValid()) { + QTest::newRow("Samoa") + << QDate(2011, 12, 30) << QByteArray("Pacific/Apia") + << invalid << invalid; + } // TODO: find other zones with transitions at/crossing midnight. } @@ -502,6 +511,7 @@ void tst_QDate::startOfDay_endOfDay() QFETCH(QTime, start); QFETCH(QTime, end); const QTimeZone zone(zoneName); + QVERIFY(zone.isValid()); const bool isSystem = QTimeZone::systemTimeZone() == zone; QDateTime front(date.startOfDay(zone)), back(date.endOfDay(zone)); if (end.isValid()) -- cgit v1.2.3