@@ -94,7 +94,7 @@ void ParameterManagerTest::_requestListNoResponse(void)
9494void 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