diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-06-23 03:01:39 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-06-23 03:01:39 +0200 |
commit | 9cdf0e046cbe1c850ce73a4590c50d85d050b4ec (patch) | |
tree | 78b6f610276d39451cd08a3aa7cb50a7d1ac8edb /tests | |
parent | 7a7d355ac603283d05610e584d7c923e1d4caae0 (diff) | |
parent | 05719fedab5b052c433b5137fa63e5a1136a84e6 (diff) | |
download | qtlocation-9cdf0e046cbe1c850ce73a4590c50d85d050b4ec.tar.gz |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: Idcdc09a031efbc418b36214b949aded91391a1ed
Diffstat (limited to 'tests')
3 files changed, 15 insertions, 14 deletions
diff --git a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp index fa073308..ce7b4d66 100644 --- a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp +++ b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp @@ -482,12 +482,12 @@ void TestQGeoPositionInfoSource::startUpdates_testIntervalChangesWhileRunning() m_source->setUpdateInterval(0); - QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 1) && (timeout.count() == 0), 7000); + QTRY_VERIFY_WITH_TIMEOUT((spy.count() > 0) && (timeout.count() == 0), 7000); spy.clear(); m_source->setUpdateInterval(0); - QTRY_VERIFY_WITH_TIMEOUT((spy.count() == 1) && (timeout.count() == 0), 7000); + QTRY_VERIFY_WITH_TIMEOUT((spy.count() > 0) && (timeout.count() == 0), 7000); spy.clear(); m_source->stopUpdates(); diff --git a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp index 9dd837e6..37fe7abc 100644 --- a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp +++ b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp @@ -90,7 +90,7 @@ void tst_QNmeaPositionInfoSource::supportedPositioningMethods() void tst_QNmeaPositionInfoSource::minimumUpdateInterval() { QNmeaPositionInfoSource source(m_mode); - QCOMPARE(source.minimumUpdateInterval(), 100); + QCOMPARE(source.minimumUpdateInterval(), 2); } void tst_QNmeaPositionInfoSource::userEquivalentRangeError() @@ -147,13 +147,14 @@ void tst_QNmeaPositionInfoSource::lastKnownPosition() QList<QDateTime> dateTimes = createDateTimes(5); for (int i=0; i<dateTimes.count(); i++) { - proxy->source()->requestUpdate(); + proxy->source()->requestUpdate(); // Irrelevant for this test proxy->feedUpdate(dateTimes[i]); QTRY_COMPARE(proxy->source()->lastKnownPosition().timestamp(), dateTimes[i]); } proxy->source()->startUpdates(); - dateTimes = createDateTimes(5); + // if dateTimes are older than before, they will be ignored. + dateTimes = createDateTimes(dateTimes.last().addMSecs(100), 5); for (int i=0; i<dateTimes.count(); i++) { proxy->feedUpdate(dateTimes[i]); QTRY_COMPARE(proxy->source()->lastKnownPosition().timestamp(), dateTimes[i]); @@ -358,8 +359,10 @@ void tst_QNmeaPositionInfoSource::startUpdates_waitForValidDateTime() QObject::connect(proxy->source(), &QNmeaPositionInfoSource::positionUpdated, [](const QGeoPositionInfo &info) { qDebug() << info.timestamp(); }); + proxy->source()->startUpdates(); proxy->feedBytes(bytes); + QTest::qWait(1000); // default push delay is 20ms QTRY_COMPARE(spy.count(), dateTimes.count()); for (int i=0; i<spy.count(); i++) { @@ -397,6 +400,7 @@ void tst_QNmeaPositionInfoSource::startUpdates_waitForValidDateTime_data() bytes += QLocationTestUtils::createGgaSentence(dt.addMSecs(100).time()).toLatin1(); bytes += QLocationTestUtils::createRmcSentence(dt.addMSecs(200)).toLatin1(); bytes += QLocationTestUtils::createGgaSentence(dt.addMSecs(300).time()).toLatin1(); + // The first GGA does not have date, and there's no cached date to inject, so that update will be invalid QTest::newRow("Feed GGA,RMC,GGA; expect RMC, second GGA only") << bytes << (QList<QDateTime>() << dt.addMSecs(200) << dt.addMSecs(300)) << (QList<bool>() << true << true) // accuracies are currently cached and injected in QGeoPositionInfos that do not have it @@ -424,13 +428,6 @@ void tst_QNmeaPositionInfoSource::startUpdates_waitForValidDateTime_data() << bytes << (QList<QDateTime>() << dt.addMSecs(200) << dt.addMSecs(300)) << (QList<bool>() << true << true) << (QList<bool>() << true << true); // First GGA gets VDOP from GSA bundled into previous, as it has no timestamp, second GGA gets the cached value. - } else { - // FixMe: remove else block once NMEA realtime mode supports timestamp-based combination of nmea sentences - QTest::newRow("Feed ZDA,GGA,GSA,GGA; expect vertical accuracy from second GGA") - << bytes << (QList<QDateTime>() << dt.addMSecs(200) << dt.addMSecs(300)) - << (QList<bool>() << true << true) - << (QList<bool>() << false << true); - } if (m_mode == QNmeaPositionInfoSource::SimulationMode) { diff --git a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h index 60a4093c..073a4aac 100644 --- a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h +++ b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h @@ -61,10 +61,9 @@ public: tst_QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode mode, QObject *parent = 0); private: - QList<QDateTime> createDateTimes(int count) const + QList<QDateTime> createDateTimes(const QDateTime &dt, int count) const { QList<QDateTime> dateTimes; - QDateTime dt = QDateTime::currentDateTime().toUTC(); int interval = 100; for (int i=0; i<count; i++) { dateTimes << dt.addMSecs(interval); @@ -73,6 +72,11 @@ private: return dateTimes; } + QList<QDateTime> createDateTimes(int count) const + { + return createDateTimes(QDateTime::currentDateTime().toUTC(), count); + } + private slots: void initTestCase(); |