No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange

Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange

No version for distro kilted showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange

No version for distro lyrical showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange

No version for distro rolling showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange

No version for distro github showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

sm_coretest_features_1 package from SMACC2 repo

smacc2 cl_foundation_pose cl_gcalcli cl_generic_sensor cl_http cl_keyboard cl_lifecycle_node cl_mission_tracker cl_modbus_tcp_relay cl_moveit2z cl_nav2z backward_global_planner backward_local_planner forward_global_planner forward_local_planner nav2z_planners_common pure_spinning_local_planner undo_path_global_planner cl_px4_mr cl_ros2_timer eg_conditional_generator eg_random_generator smacc2_msgs sm_atomic_performance_trace_1 sm_atomic_subscribers_performance_test sm_coretest_action_client_1 sm_coretest_callback_rate_1 sm_coretest_exceptions_1 sm_coretest_features_1 sm_coretest_forced_finish_1 sm_coretest_poll_shutdown_1 sm_coretest_post_during_exit_1 sm_coretest_reactor_order_1 sm_coretest_signal_key_1 sm_coretest_timer_handoff_1 sm_coretest_transition_speed_1 sm_advanced_recovery_1 sm_atomic sm_atomic_http sm_atomic_lifecycle sm_atomic_mode_states sm_branching sm_cl_gcalcli_test_1 sm_cl_keyboard_unit_test_1 sm_cl_px4_mr_test_1 sm_cl_px4_mr_test_2 sm_cl_px4_mr_test_3 sm_cl_px4_mr_test_4 sm_cl_px4_mr_test_5 sm_cl_ros2_timer_unit_test_1 sm_data_sharing_1 sm_data_sharing_2 sm_modbus_tcp_relay_test_1 sm_mode_state_behavior_1 sm_multi_stage_1 sm_multithread_test_1 sm_nav2_gazebo_test_1 sm_nav2_gazebo_test_2 sm_nav2_gazebo_test_3 sm_pack_ml sm_panda_cl_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory_isaacsim sm_retry_logic_1 sm_simple_action_client sm_three_some sr_all_events_go sr_conditional sr_event_countdown

ROS Distro
jazzy

Package Summary

Version 3.1.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/robosoft-ai/SMACC2.git
VCS Type git
VCS Version jazzy
Last Updated 2026-11-14
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Core test: the features no other core test reaches. An event generator, CbSequence run to its end, aborted by a failing step and cut short by a state exit, a behavior that posts its failure event, and an updatable with an update period.

Maintainers

  • Brett Aldrich

Authors

No additional authors.

sm_coretest_features_1

Core test for the features no other core test reaches: an event generator, CbSequence, a behavior that posts its failure event, and an updatable with an update period. It is not a reference state machine; it exists so this code runs under the sanitizers.

What it does

Six states follow each other and start again. Each sends an outcome it must not see to StTrap, which is terminal and logs TRAP ENTERED.

State What runs What must happen
StGenerator an EgConditionalGenerator in update mode it posts EvFalse on six updates, then EvTrue, the only event the state reacts to
StSequence a CbSequence of three 50 ms sleeps every step runs; the sequence posts EvCbSuccess
StSequenceAbort a CbSequence of a sleep, CbFail, a sleep CbFail posts its failure event; the sequence posts EvCbFailure and the third step never runs
StPeriodic CbPeriodicTick, an updatable with a 200 ms update period, for 1.1 s about five ticks; the 20 Hz polling loop would give about twenty-two without the period
StSequenceCut a CbSequence of ten sleeps against a 330 ms timer the state exits with the sequence part way through; no further step starts
StSequenceCutOnStep the same against a 200 ms timer the state exits just as the sequence starts its second step

The last two are the reason for the test’s shape. A CbSequence starts each step from its own thread, and starting a step creates a behavior and signal connections, which take the state machine’s mutex. An exiting state holds that mutex while it joins the sequence’s thread. Before the fix that came with this test, StSequenceCut hung the machine on its first exit, for good and deaf to SIGINT: the sequence started a new step after it had been asked to finish. With that closed, StSequenceCutOnStep still hung it, because the exit began while a step was being started.

Run

ros2 launch sm_coretest_features_1 sm_coretest_features_1.launch.py

The launch file tees the node output to /tmp/sm_coretest_features_1_latest.log.

In the gate

.github/scripts/sanitizer_core_tests.sh runs the machine for 30 s under TSan, ASan and a plain build, then interrupts it at five random moments. It fails if the machine completes fewer than three cycles, if StTrap is entered, if a sequence does not complete or abort once per cycle, if the tick count is not between three and seven per StPeriodic, if a run ends with an uncaught exception or a hang, or on a sanitizer report with a SMACC2 frame.

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sm_coretest_features_1 at Robotics Stack Exchange