diff options
Diffstat (limited to 'tests')
3 files changed, 14 insertions, 13 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 886d7009..37fe7abc 100644 --- a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp +++ b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.cpp @@ -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(); |