diff --git a/test/mavsdk_tests/autopilot_tester.cpp b/test/mavsdk_tests/autopilot_tester.cpp index e1bbe9efde..f3ba47f871 100644 --- a/test/mavsdk_tests/autopilot_tester.cpp +++ b/test/mavsdk_tests/autopilot_tester.cpp @@ -271,9 +271,16 @@ void AutopilotTester::execute_mission() REQUIRE(poll_condition_with_timeout( [this]() { return _mission->start_mission() == Mission::Result::Success; }, std::chrono::seconds(3))); - // TODO: Adapt time limit based on mission size, flight speed, sim speed factor, etc. + float speed_factor = 1.0f; - wait_for_mission_finished(std::chrono::seconds(90)); + if (_info != nullptr) { + speed_factor = _info->get_speed_factor().second; + } + + const float mission_finish_waiting_time_in_simulation_s = 500.f; + float mission_finish_waiting_time_in_real_s = mission_finish_waiting_time_in_simulation_s / speed_factor; + + wait_for_mission_finished(std::chrono::seconds(static_cast(mission_finish_waiting_time_in_real_s))); } void AutopilotTester::execute_mission_and_lose_gps() @@ -388,9 +395,16 @@ void AutopilotTester::execute_mission_raw() { REQUIRE(_mission->start_mission() == Mission::Result::Success); - // TODO: Adapt time limit based on mission size, flight speed, sim speed factor, etc. + float speed_factor = 1.0f; - wait_for_mission_raw_finished(std::chrono::seconds(120)); + if (_info != nullptr) { + speed_factor = _info->get_speed_factor().second; + } + + const float waiting_time_simulation_time_s = 300.f; // currently this is tuned for the VTOL wind test + float waiting_time_absolute_s = waiting_time_simulation_time_s / speed_factor; + + wait_for_mission_raw_finished(std::chrono::seconds(static_cast(waiting_time_absolute_s))); } void AutopilotTester::execute_rtl()