diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2016-09-30 11:50:49 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> | 2016-10-02 13:07:18 +0000 |
commit | be7f671ac99c7d02d82a5f05822642bd39e30923 (patch) | |
tree | 568a67ddf46b3efa8c7714ad8050c3d9950335ac /tests/auto/corelib/tools | |
parent | c6fa0222e2c140eebd0322e550780afef1bc26f7 (diff) |
Round to nearest millisecond in QDateTime::fromCFDate()
CFAbsoluteTime is measured in seconds, represented by a double,
so when converting milliseconds to CFAbsoluteTime we may get a
slight error due to missing precision in double to represent
the milliseconds exactly. By rounding to the closest millisecond
when converting back, we avoid truncating and being one ms off.
Change-Id: If1e99f97b000fb8cb893ddfc5d7ba81096c0ea88
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'tests/auto/corelib/tools')
-rw-r--r-- | tests/auto/corelib/tools/qdatetime/tst_qdatetime_mac.mm | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tests/auto/corelib/tools/qdatetime/tst_qdatetime_mac.mm b/tests/auto/corelib/tools/qdatetime/tst_qdatetime_mac.mm index fb49b8952e..f73c7b9d5d 100644 --- a/tests/auto/corelib/tools/qdatetime/tst_qdatetime_mac.mm +++ b/tests/auto/corelib/tools/qdatetime/tst_qdatetime_mac.mm @@ -36,8 +36,11 @@ void tst_QDateTime_macTypes() { // QDateTime <-> CFDate - { - QDateTime qtDateTime = QDateTime::fromMSecsSinceEpoch(0); + + static const int kMsPerSecond = 1000; + + for (int i = 0; i < kMsPerSecond; ++i) { + QDateTime qtDateTime = QDateTime::fromMSecsSinceEpoch(i); const CFDateRef cfDate = qtDateTime.toCFDate(); QCOMPARE(QDateTime::fromCFDate(cfDate), qtDateTime); CFRelease(cfDate); @@ -50,9 +53,9 @@ void tst_QDateTime_macTypes() QCOMPARE(QDateTime::fromCFDate(cfDate), qtDateTimeCopy); } // QDateTime <-> NSDate - { + for (int i = 0; i < kMsPerSecond; ++i) { QMacAutoReleasePool pool; - QDateTime qtDateTime = QDateTime::fromMSecsSinceEpoch(0); + QDateTime qtDateTime = QDateTime::fromMSecsSinceEpoch(i); const NSDate *nsDate = qtDateTime.toNSDate(); QCOMPARE(QDateTime::fromNSDate(nsDate), qtDateTime); } |