Summary
The project currently has no unit tests (only one integration/launch test exists). Tests should be added to ensure correctness and prevent regressions.
Scope
Unit tests (pure logic, via ament_add_ros_isolated_gtest)
Integration tests (via launch_testing)
CI
Summary
The project currently has no unit tests (only one integration/launch test exists). Tests should be added to ensure correctness and prevent regressions.
Scope
Unit tests (pure logic, via
ament_add_ros_isolated_gtest)cie_thread_configurator::create_callback_group_id: self-contained string-ID generation; good starting pointMultiThreadedExecutorInternalstate machine / error handling:pre_spin()called twice throws,spin()withoutpre_spin()throws,get_thread_ids()withoutpre_spin()throws, andget_thread_ids()returns N unique TIDsCallbackIsolatedExecutoradd/remove/get bookkeeping for callback groups and nodesexit(EXIT_FAILURE), so these paths need gtest death tests (EXPECT_EXIT) unless they are converted to exceptions first (see Testability refactors below)create_client_publisher(), sorclcpp::init()is required; this is not a pure unit testThreadConfiguratorNodeYAML/config parsing and error paths (emptyconfig_file, unknown scheduling policy, malformed YAML, hardware mismatch)PrerunNodedump_yaml_configoutput and duplicate-ID detectionIntegration tests (via
launch_testing)CallbackIsolatedExecutordirectly (test_cie_pubsub.launch.py): test(cie): add minimal pub/sub launch_testing for CIE #57ComponentManagerCallbackIsolated/ composable nodes)add_node_to_executor/remove_node_from_executorare protected overrides driven only throughComponentManager's load/unload services, so this is inherently integration rather than unit. The previously separate "unit test forComponentManagerCallbackIsolated" item is folded in here; onlyis_clock_callback_groupis unit-sized.spawn_non_ros2_thread->NonRosThreadInfo->non_ros_thread_callbackinThreadConfiguratorNode/PrerunNode)CI
build-and-testworkflow to also run gtest unit tests (it currently runscolcon test ... -L launch_test, soament_add_gtesttargets are never executed)--packages-selectto also covercie_thread_configurator(onlycallback_isolated_executoris tested today, so unit tests added to the configurator package would not run otherwise)