1616#include " score/mw/launch_manager/alive_monitor/mock_alive_monitor.hpp"
1717#include " score/mw/launch_manager/alive_monitor/mock_alive_supervision_handle.hpp"
1818#include " score/mw/launch_manager/alive_monitor/mock_supervision_factory.hpp"
19+ #include " score/mw/launch_manager/process_group_manager/mock_iprocess.hpp"
1920#include " score/mw/launch_manager/recovery_client/mock_recovery_client.h"
2021#include " score/mw/launch_manager/watchdog/mock_IWatchdogIf.hpp"
2122
@@ -115,6 +116,8 @@ GraphConfig takeGraphConfig(Config& config)
115116class ProcessGroupManagerWatchdogTest : public Test
116117{
117118 protected:
119+ static constexpr osal::ProcessID kMockPid = 100 ;
120+
118121 void expectNormalStartup ()
119122 {
120123 EXPECT_CALL (*alive_monitor_, init ()).WillOnce (Return (true ));
@@ -149,14 +152,24 @@ class ProcessGroupManagerWatchdogTest : public Test
149152 auto watchdog = std::make_unique<StrictMock<MockWatchdogIf>>();
150153 watchdog_ = watchdog.get ();
151154
155+ // Mock the proc launcher calls
156+ auto process_interface = std::make_unique<NiceMock<osal::MockIProcess>>();
157+ process_interface_ = process_interface.get ();
158+ ON_CALL (*process_interface_, startProcess)
159+ .WillByDefault (DoAll (SetArgReferee<0 >(kMockPid ), Return (osal::OsalReturnType::kSuccess )));
160+ ON_CALL (*process_interface_, waitForkRunning).WillByDefault (Return (osal::OsalReturnType::kSuccess ));
161+ ON_CALL (*process_interface_, requestTermination).WillByDefault (Return (osal::OsalReturnType::kSuccess ));
162+ ON_CALL (*process_interface_, forceTermination).WillByDefault (Return (osal::OsalReturnType::kFail ));
163+
152164 auto config = makeMinimalConfig ();
153165
154166 process_group_manager_ = std::make_unique<ProcessGroupManager>(
155167 takeGraphConfig (config),
156168 std::move (alive_monitor),
157169 std::move (recovery_client),
158170 std::move (watchdog),
159- config.takeWatchdog ());
171+ config.takeWatchdog (),
172+ std::move (process_interface));
160173 }
161174
162175 void TearDown () override
@@ -168,6 +181,7 @@ class ProcessGroupManagerWatchdogTest : public Test
168181 MockRecoveryClient* recovery_client_{};
169182 IRecoveryClient::RecoveryRequestCallback recovery_callback_{};
170183 MockWatchdogIf* watchdog_{};
184+ osal::MockIProcess* process_interface_{};
171185 NiceMock<MockSupervisionFactory> factory_{};
172186 std::unique_ptr<ProcessGroupManager> process_group_manager_;
173187};
0 commit comments