Skip to content

Commit 838c7e6

Browse files
author
petrosilius
committed
Fix test
1 parent 9a146da commit 838c7e6

File tree

1 file changed

+40
-16
lines changed

1 file changed

+40
-16
lines changed

test/FactSystem/ParameterManagerTest.cc

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ void ParameterManagerTest::_requestListNoResponse(void)
9494
void ParameterManagerTest::_skipParameterDownload(void)
9595
{
9696
Q_ASSERT(!_mockLink);
97-
_mockLink = MockLink::startPX4MockLink(false, MockConfiguration::FailNone);
97+
_mockLink = MockLink::startPX4MockLink(false, MockConfiguration::FailParamNoReponseToRequestList);
9898

9999
MultiVehicleManager* vehicleMgr = MultiVehicleManager::instance();
100100
QVERIFY(vehicleMgr);
@@ -110,25 +110,49 @@ void ParameterManagerTest::_skipParameterDownload(void)
110110
Vehicle* vehicle = vehicleMgr->activeVehicle();
111111
QVERIFY(vehicle);
112112

113-
// We should get progress bar updates during load
114-
QSignalSpy spyProgress(vehicle->parameterManager(), SIGNAL(loadProgressChanged(float)));
115-
QCOMPARE(spyProgress.wait(2000), true);
116-
arguments = spyProgress.takeFirst();
117-
QCOMPARE(arguments.count(), 1);
118-
QVERIFY(arguments.at(0).toFloat() > 0.0f);
113+
ParameterManager *const paramManager = vehicle->parameterManager();
114+
QVERIFY(paramManager);
115+
116+
QSignalSpy paramsReadySpy(paramManager, &ParameterManager::parametersReadyChanged);
117+
QSignalSpy missingSpy(paramManager, &ParameterManager::missingParametersChanged);
118+
QSignalSpy progressSpy(paramManager, &ParameterManager::loadProgressChanged);
119+
QSignalSpy vehicleReadySpy(vehicleMgr, SIGNAL(parameterReadyVehicleAvailableChanged(bool)));
120+
121+
QVERIFY(paramsReadySpy.isValid());
122+
QVERIFY(missingSpy.isValid());
123+
QVERIFY(progressSpy.isValid());
124+
QVERIFY(vehicleReadySpy.isValid());
119125

120126
// Trigger skip of parameter download
121-
vehicle->parameterManager()->skipParameterDownload();
127+
paramManager->skipParameterDownload();
122128

123-
// We should get a parameters ready signal, but Vehicle should indicate missing params
124-
QSignalSpy spyParamsReady(vehicleMgr, SIGNAL(parameterReadyVehicleAvailableChanged(bool)));
125-
QCOMPARE(spyParamsReady.wait(40000), true);
126-
QCOMPARE(vehicle->parameterManager()->missingParameters(), true);
129+
QTRY_VERIFY(paramManager->parametersReady());
130+
QTRY_VERIFY(paramManager->missingParameters());
131+
QTRY_COMPARE(paramManager->loadProgress(), 1.0);
127132

128-
// Progress should have been set back to 1
129-
arguments = spyProgress.takeLast();
130-
QCOMPARE(arguments.count(), 1);
131-
QCOMPARE(arguments.at(0).toFloat(), 1.0f);
133+
if (paramsReadySpy.count() > 0) {
134+
arguments = paramsReadySpy.takeFirst();
135+
QCOMPARE(arguments.count(), 1);
136+
QCOMPARE(arguments.at(0).toBool(), true);
137+
}
138+
139+
if (missingSpy.count() > 0) {
140+
arguments = missingSpy.takeFirst();
141+
QCOMPARE(arguments.count(), 1);
142+
QCOMPARE(arguments.at(0).toBool(), true);
143+
}
144+
145+
if (progressSpy.count() > 0) {
146+
arguments = progressSpy.takeLast();
147+
QCOMPARE(arguments.count(), 1);
148+
QCOMPARE(arguments.at(0).toFloat(), 1.0f);
149+
}
150+
151+
if (vehicleReadySpy.count() > 0) {
152+
arguments = vehicleReadySpy.takeFirst();
153+
QCOMPARE(arguments.count(), 1);
154+
QCOMPARE(arguments.at(0).toBool(), true);
155+
}
132156
}
133157

134158
// MockLink will fail to send a param on initial request, it will also fail to send it on subsequent

0 commit comments

Comments
 (0)