diff options
author | Andreas Buhr <andreas.buhr@qt.io> | 2020-11-27 15:42:36 +0100 |
---|---|---|
committer | Andreas Buhr <andreas.buhr@qt.io> | 2021-02-02 15:34:53 +0100 |
commit | 91695b584ebaec6bac44bf52a4eab44da47d5a59 (patch) | |
tree | 2c5206ed640edf64a883c83cdd1b390c71c61767 /tests/auto/corelib | |
parent | 54de6b8a4317d462800d2a711d1fe0c4493522bb (diff) |
Test QDateTime behavior in DST gap
Historic QDateTime behavior when being asked to create a
QDateTime in the DST gap was to interpret the given date
as if it was in the time before that gap, mapping it to a point
in time after the gap. This has changed (after Qt 5.15) with
a04411119ead3d4473e4f0ac4bceedc585977b2f .
Since then, the given date is interpreted as if it was in the
time after the gap, thus being mapped to a point in time
before the gap.
This was not caught (in dev) by Coin because machines ran in
timezone "Atlantic/Reykjavik" which does not have DST since 1967.
This patch changes tests to always run in "Europe/Oslo".
A support function and each test-case thus need to use zone-time
instead of local time.
Fixes: QTBUG-86960
Fixes: QTBUG-89208
Change-Id: Iecce5898bf9711a10e7dfc0a25e4bbeaed1c8ade
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 3d785249ba43cf4bd895ed679bac2791e0130dc5)
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r-- | tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp index 4a0fc81a9c..3f0af84e4e 100644 --- a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp +++ b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp @@ -2705,6 +2705,9 @@ void tst_QDateTime::fromStringStringFormat() #endif // OffsetFromUTC needs an offset check - we may as well do it for all: QCOMPARE(dt.offsetFromUtc(), expected.offsetFromUtc()); + } else { + QCOMPARE(dt.isValid(), expected.isValid()); + QCOMPARE(dt.toMSecsSinceEpoch(), expected.toMSecsSinceEpoch()); } } @@ -3176,7 +3179,9 @@ void tst_QDateTime::daylightTransitions() const QDateTime missing(QDate(2012, 3, 25), QTime(2, 0, 0)); QVERIFY(!missing.isValid()); QCOMPARE(missing.date(), QDate(2012, 3, 25)); - QCOMPARE(missing.time(), QTime(2, 0, 0)); + QCOMPARE(missing.time(), QTime(2, 0)); + // datetimeparser relies on toMSecsSinceEpoch to still work: + QCOMPARE(missing.toMSecsSinceEpoch(), daylight2012); QDateTime after(QDate(2012, 3, 25), QTime(3, 0, 0)); QVERIFY(after.isValid()); |