diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2021-04-19 13:55:06 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2021-04-27 14:12:35 +0200 |
commit | 828f533b32573c1251f20f38d4c5ef20b6cc2c39 (patch) | |
tree | 9e4b599746e75db8d81edd1bda39778e7cf08642 /tests | |
parent | 7fa8315eb13ecd99001612fbfe5c0036e25fd344 (diff) |
Check POSIX rules during QTzTimeZone creation
Previously, an apparent POSIX rule would be saved and any defects in
it would only be discovered when trying to use it to generate
transitions. Instead, check that it has the right form during the
initial parsing of its data.
In the process, since checking for DST in the process is trivial,
implement a long-standing TODO to cache hasDaylightTime()'s
answer. The array it scanned was in any case being scanned during
construction, so detecting DST in init()'s scan is trivial; and its
failure to check the POSIX rule mean it failed to notice when zones
entirely specified by a POSIX rule have DST.
Adapt a test using a POSIX-only rule to verify it does know the zone
has DST; it did not, before this change.
Change-Id: I690c013d3331600f7348dae61c35d41e5599da70
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp b/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp index 4acbd68f87..f1c29342cf 100644 --- a/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp +++ b/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp @@ -1140,6 +1140,7 @@ void tst_QTimeZone::tzTest() // Test POSIX-format value for $TZ: QTzTimeZonePrivate tzposix("MET-1METDST-2,M3.5.0/02:00:00,M10.5.0/03:00:00"); QVERIFY(tzposix.isValid()); + QVERIFY(tzposix.hasDaylightTime()); // RHEL has been seen with this as Africa/Casablanca's POSIX rule: QTzTimeZonePrivate permaDst("<+00>0<+01>,0/0,J365/25"); |