summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp20
-rw-r--r--tests/auto/corelib/time/qtime/tst_qtime.cpp14
2 files changed, 30 insertions, 4 deletions
diff --git a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp
index 18b7a9d74f..2e2b5fbf24 100644
--- a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp
@@ -2202,6 +2202,15 @@ void tst_QDateTime::fromStringDateFormat_data()
<< Qt::TextDate << QDateTime();
QTest::newRow("text second fraction") << QString::fromLatin1("Mon 6. May 2013 01:02:03.456")
<< Qt::TextDate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 3, 456));
+ QTest::newRow("text max milli")
+ << QString::fromLatin1("Mon 6. May 2013 01:02:03.999499999")
+ << Qt::TextDate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 3, 999));
+ QTest::newRow("text milli wrap")
+ << QString::fromLatin1("Mon 6. May 2013 01:02:03.9995")
+ << Qt::TextDate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 4));
+ QTest::newRow("text last milli") // Special case, don't round up to invalid:
+ << QString::fromLatin1("Mon 6. May 2013 23:59:59.9999999999")
+ << Qt::TextDate << QDateTime(QDate(2013, 5, 6), QTime(23, 59, 59, 999));
const QDateTime ref(QDate(1974, 12, 1), QTime(13, 2));
QTest::newRow("day:,:month")
@@ -2331,6 +2340,17 @@ void tst_QDateTime::fromStringDateFormat_data()
<< Qt::ISODate << QDateTime(QDate(2012, 1, 1), QTime(8, 0, 0, 333), Qt::LocalTime);
QTest::newRow("ISO .00009 of a second (period)") << QString::fromLatin1("2012-01-01T08:00:00.00009")
<< Qt::ISODate << QDateTime(QDate(2012, 1, 1), QTime(8, 0, 0, 0), Qt::LocalTime);
+ QTest::newRow("ISO second fraction") << QString::fromLatin1("2013-05-06T01:02:03.456")
+ << Qt::ISODate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 3, 456));
+ QTest::newRow("ISO max milli")
+ << QString::fromLatin1("2013-05-06T01:02:03.999499999")
+ << Qt::ISODate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 3, 999));
+ QTest::newRow("ISO milli wrap")
+ << QString::fromLatin1("2013-05-06T01:02:03.9995")
+ << Qt::ISODate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 4));
+ QTest::newRow("ISO last milli") // Does round up and overflow into new day:
+ << QString::fromLatin1("2013-05-06T23:59:59.9999999999")
+ << Qt::ISODate << QDate(2013, 5, 7).startOfDay();
QTest::newRow("ISO no fraction specified")
<< QString::fromLatin1("2012-01-01T08:00:00.") << Qt::ISODate << QDateTime();
// Test invalid characters (should ignore invalid characters at end of string).
diff --git a/tests/auto/corelib/time/qtime/tst_qtime.cpp b/tests/auto/corelib/time/qtime/tst_qtime.cpp
index b79cb609e7..ce8a24515b 100644
--- a/tests/auto/corelib/time/qtime/tst_qtime.cpp
+++ b/tests/auto/corelib/time/qtime/tst_qtime.cpp
@@ -588,10 +588,12 @@ void tst_QTime::fromStringDateFormat_data()
<< QString("10:12:34") << Qt::TextDate << QTime(10, 12, 34);
QTest::newRow("TextDate - milli-max")
<< QString("19:03:54.998601") << Qt::TextDate << QTime(19, 3, 54, 999);
- QTest::newRow("TextDate - milli-no-overflow")
- << QString("19:03:54.999601") << Qt::TextDate << QTime(19, 3, 54, 999);
+ QTest::newRow("TextDate - milli-wrap")
+ << QString("19:03:54.999601") << Qt::TextDate << QTime(19, 3, 55);
QTest::newRow("TextDate - no-secs")
<< QString("10:12") << Qt::TextDate << QTime(10, 12);
+ QTest::newRow("TextDate - midnight-nowrap")
+ << QString("23:59:59.9999") << Qt::TextDate << QTime(23, 59, 59, 999);
QTest::newRow("TextDate - invalid, minutes") << QString::fromLatin1("23:XX:00") << Qt::TextDate << invalidTime();
QTest::newRow("TextDate - invalid, minute fraction") << QString::fromLatin1("23:00.123456") << Qt::TextDate << invalidTime();
QTest::newRow("TextDate - invalid, seconds") << QString::fromLatin1("23:00:XX") << Qt::TextDate << invalidTime();
@@ -601,6 +603,8 @@ void tst_QTime::fromStringDateFormat_data()
QTest::newRow("IsoDate - valid, start of day, omit seconds") << QString::fromLatin1("00:00") << Qt::ISODate << QTime(0, 0, 0);
QTest::newRow("IsoDate - valid, omit seconds") << QString::fromLatin1("22:21") << Qt::ISODate << QTime(22, 21, 0);
+ QTest::newRow("IsoDate - minute fraction") // 60 * 0.816666 = 48.99996 should round up:
+ << QString::fromLatin1("22:21.816666") << Qt::ISODate << QTime(22, 21, 49);
QTest::newRow("IsoDate - valid, omit seconds (2)") << QString::fromLatin1("23:59") << Qt::ISODate << QTime(23, 59, 0);
QTest::newRow("IsoDate - valid, end of day") << QString::fromLatin1("23:59:59") << Qt::ISODate << QTime(23, 59, 59);
@@ -619,8 +623,10 @@ void tst_QTime::fromStringDateFormat_data()
QTest::newRow("IsoDate - ordinary") << QString("10:12:34") << Qt::ISODate << QTime(10, 12, 34);
QTest::newRow("IsoDate - milli-max")
<< QString("19:03:54.998601") << Qt::ISODate << QTime(19, 3, 54, 999);
- QTest::newRow("IsoDate - milli-no-overflow")
- << QString("19:03:54.999601") << Qt::ISODate << QTime(19, 3, 54, 999);
+ QTest::newRow("IsoDate - milli-wrap")
+ << QString("19:03:54.999601") << Qt::ISODate << QTime(19, 3, 55);
+ QTest::newRow("IsoDate - midnight-nowrap")
+ << QString("23:59:59.9999") << Qt::ISODate << QTime(23, 59, 59, 999);
QTest::newRow("IsoDate - midnight 24")
<< QString("24:00:00") << Qt::ISODate << QTime(0, 0);
QTest::newRow("IsoDate - minute fraction midnight")