diff options
author | John Layt <jlayt@kde.org> | 2013-08-01 15:26:50 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-21 01:20:01 +0200 |
commit | 2f2a799f3d7b2fe6d1a20fdb0dde35354924fe13 (patch) | |
tree | 2f4a68681ec06dedb5b4390cc6056f47b92b600b /tests | |
parent | 1696f45d9216f97654fedd580ed3db4b825089e0 (diff) |
QDateTime - Fix tests to correctly restore time zone
The unit tests were caching the original TZ value to restore later
after testing with different TZ values. The problem is reading TZ will
return a null value if no override TZ value is set, and if you then set
the TZ to null the system assumes UTC and not the system time zone.
Instead we need to unset TZ if it was null to start with.
Change-Id: Ib0625b1712e565f9fdfa99e2ffe1e5d74f059354
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp index a0e55e9ae1..50092c9989 100644 --- a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp +++ b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp @@ -1430,8 +1430,9 @@ void tst_QDateTime::operator_insert_extract() QFETCH(QString, deserialiseAs); QFETCH(QDataStream::Version, dataStreamVersion); - // Save the previous timezone so we can restore it afterwards, just in case. - QString previousTimeZone = qgetenv("TZ"); + // Save the previous timezone so we can restore it afterwards, otherwise later tests will break + QByteArray previousTimeZone = qgetenv("TZ"); + // Start off in a certain timezone. qputenv("TZ", serialiseAs.toLocal8Bit().constData()); tzset(); @@ -1512,7 +1513,10 @@ void tst_QDateTime::operator_insert_extract() } } - qputenv("TZ", previousTimeZone.toLocal8Bit().constData()); + if (previousTimeZone.isNull()) + qunsetenv("TZ"); + else + qputenv("TZ", previousTimeZone.constData()); tzset(); } #endif |