summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp b/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp
index bb6a264de6..741adeaa14 100644
--- a/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp
+++ b/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp
@@ -63,6 +63,7 @@ private Q_SLOTS:
void isValidId_data();
void isValidId();
void serialize();
+ void malformed();
// Backend tests
void utcTest();
void icuTest();
@@ -957,6 +958,21 @@ void tst_QTimeZone::serialize()
QSKIP("No serialization enabled");
}
+void tst_QTimeZone::malformed()
+{
+ // Regression test for QTBUG-92808
+ // Strings that look enough like a POSIX zone specifier that the constructor
+ // accepts them, but the specifier is invalid.
+ // Must not crash or trigger assertions when calling offsetFromUtc()
+ const QDateTime now = QDateTime::currentDateTime();
+ QTimeZone barf("QUT4tCZ0 , /");
+ if (barf.isValid())
+ barf.offsetFromUtc(now);
+ barf = QTimeZone("QtC+09,,MA");
+ if (barf.isValid())
+ barf.offsetFromUtc(now);
+}
+
void tst_QTimeZone::utcTest()
{
#ifdef QT_BUILD_INTERNAL