Add a check of selected time-zone offset data
Task-number: QTBUG-64122 Change-Id: I6b113f2f05db9659b8c542744846096e39f285ab Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>bb10
parent
6deb0f0dcc
commit
92fad720af
|
|
@ -47,6 +47,8 @@ private slots:
|
|||
void availableTimeZoneIds();
|
||||
void transitionEachZone_data();
|
||||
void transitionEachZone();
|
||||
void checkOffset_data();
|
||||
void checkOffset();
|
||||
void stressTest();
|
||||
void windowsId();
|
||||
void isValidId_data();
|
||||
|
|
@ -446,6 +448,51 @@ void tst_QTimeZone::transitionEachZone()
|
|||
}
|
||||
}
|
||||
|
||||
void tst_QTimeZone::checkOffset_data()
|
||||
{
|
||||
QTest::addColumn<QByteArray>("zoneName");
|
||||
QTest::addColumn<QDateTime>("when");
|
||||
QTest::addColumn<int>("netOffset");
|
||||
QTest::addColumn<int>("stdOffset");
|
||||
QTest::addColumn<int>("dstOffset");
|
||||
|
||||
struct {
|
||||
const char *zone, *nick;
|
||||
int year, month, day, hour, min, sec;
|
||||
int std, dst;
|
||||
} table[] = {
|
||||
// Kiev: regression test for QTBUG-64122 (on MS):
|
||||
{ "Europe/Kiev", "summer", 2017, 10, 27, 12, 0, 0, 2 * 3600, 3600 },
|
||||
{ "Europe/Kiev", "winter", 2017, 10, 29, 12, 0, 0, 2 * 3600, 0 }
|
||||
};
|
||||
for (const auto &entry : table) {
|
||||
QTimeZone zone(entry.zone);
|
||||
if (zone.isValid()) {
|
||||
QTest::addRow("%s@%s", entry.zone, entry.nick)
|
||||
<< QByteArray(entry.zone)
|
||||
<< QDateTime(QDate(entry.year, entry.month, entry.day),
|
||||
QTime(entry.hour, entry.min, entry.sec), zone)
|
||||
<< entry.dst + entry.std << entry.std << entry.dst;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void tst_QTimeZone::checkOffset()
|
||||
{
|
||||
QFETCH(QByteArray, zoneName);
|
||||
QFETCH(QDateTime, when);
|
||||
QFETCH(int, netOffset);
|
||||
QFETCH(int, stdOffset);
|
||||
QFETCH(int, dstOffset);
|
||||
|
||||
QTimeZone zone(zoneName);
|
||||
QVERIFY(zone.isValid()); // It was when _data() added the row !
|
||||
QCOMPARE(zone.offsetFromUtc(when), netOffset);
|
||||
QCOMPARE(zone.standardTimeOffset(when), stdOffset);
|
||||
QCOMPARE(zone.daylightTimeOffset(when), dstOffset);
|
||||
QCOMPARE(zone.isDaylightTime(when), dstOffset != 0);
|
||||
}
|
||||
|
||||
void tst_QTimeZone::availableTimeZoneIds()
|
||||
{
|
||||
if (debug) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue