@@ -34,13 +34,15 @@ class TransitionReady : public ::testing::Test
34
34
SuperNodeMediator::SuperFltCtrlState flt_ctrl_state, bool expected_ready,
35
35
SuperState expected_state, bool expected_resend_life_cycle_command,
36
36
LifeCycleCommand life_cycle_command, OperatorCommand last_op_command_received = OperatorCommand::ARM,
37
- ControllerState last_controller_state_received = SuperNodeMediator::StateTransition::NO_CONTROLLER_STATE)
37
+ ControllerState last_controller_state_received = SuperNodeMediator::StateTransition::NO_CONTROLLER_STATE,
38
+ bool status_error = false )
38
39
{
39
40
SuperNodeMediator::Supervisor supervisor;
40
41
supervisor.system_state = from;
41
42
supervisor.flt_ctrl_state = flt_ctrl_state;
42
43
supervisor.last_op_command_received = last_op_command_received;
43
44
supervisor.last_controller_state_received = last_controller_state_received;
45
+ supervisor.status_error = status_error;
44
46
45
47
{
46
48
SuperNodeMediator::SuperNodeInfo node = manifested_online_node_fixture ();
@@ -215,6 +217,24 @@ TEST_F(TransitionReady, TransitionReady_AbortToDisarmingOnControllerStateComplet
215
217
ControllerState::COMPLETED);
216
218
}
217
219
220
+ TEST_F (TransitionReady, TransitionReady_AnyStateToShutdownOnStatusError_AllNodesShuttingDownOrFinalized)
221
+ {
222
+ ASSERT_TRANSITION_READY (superNodeMediator, SuperState::BOOTING, LifeCycleState::FINALIZED,
223
+ (SuperNodeMediator::SuperFltCtrlState)NULL , true , SuperState::SHUTDOWN,
224
+ false , (LifeCycleCommand)NULL , SuperNodeMediator::StateTransition::NO_OPERATOR_COMMAND,
225
+ SuperNodeMediator::StateTransition::NO_CONTROLLER_STATE, true );
226
+
227
+ ASSERT_TRANSITION_READY (superNodeMediator, SuperState::READY, LifeCycleState::SHUTTING_DOWN,
228
+ (SuperNodeMediator::SuperFltCtrlState)NULL , true , SuperState::SHUTDOWN,
229
+ false , (LifeCycleCommand)NULL , SuperNodeMediator::StateTransition::NO_OPERATOR_COMMAND,
230
+ SuperNodeMediator::StateTransition::NO_CONTROLLER_STATE, true );
231
+
232
+ ASSERT_TRANSITION_READY (superNodeMediator, SuperState::ARMED, LifeCycleState::SHUTTING_DOWN,
233
+ (SuperNodeMediator::SuperFltCtrlState)NULL , true , SuperState::SHUTDOWN,
234
+ false , (LifeCycleCommand)NULL , SuperNodeMediator::StateTransition::NO_OPERATOR_COMMAND,
235
+ SuperNodeMediator::StateTransition::NO_CONTROLLER_STATE, true );
236
+ }
237
+
218
238
TEST_F (TransitionReady, DISABLED_transitionReady_AutoToAbortWhenDeactivated)
219
239
{
220
240
ASSERT_TRANSITION_READY (superNodeMediator, SuperState::AUTO, LifeCycleState::INACTIVE, true , SuperState::ABORT);
0 commit comments