@@ -22,15 +22,36 @@ install(FILES
2222
2323if (BUILD_TESTING)
2424 find_package (launch_testing_ament_cmake REQUIRED )
25- add_launch_test (test /websocket/advertise_action.test.py )
26- add_launch_test (test /websocket/advertise_action_feedback.test.py )
27- add_launch_test (test /websocket/advertise_service.test.py )
28- add_launch_test (test /websocket/call_service.test.py )
29- add_launch_test (test /websocket/send_action_goal.test.py )
30- add_launch_test (test /websocket/smoke.test.py )
31- add_launch_test (test /websocket/transient_local_publisher.test.py )
32- add_launch_test (test /websocket/best_effort_publisher.test.py )
33- add_launch_test (test /websocket/multiple_subscribers_raw.test.py )
25+
26+ # Run each test with both SingleThreadedExecutor and EventsExecutor
27+ set (TEST_FILES
28+ test/websocket/advertise_action.test.py
29+ test/websocket/advertise_action_feedback.test.py
30+ test/websocket/advertise_service.test.py
31+ test/websocket/call_service.test.py
32+ test/websocket/send_action_goal.test.py
33+ test/websocket/smoke.test.py
34+ test/websocket/transient_local_publisher.test.py
35+ test/websocket/best_effort_publisher.test.py
36+ test/websocket/multiple_subscribers_raw.test.py
37+ )
38+
39+ foreach (TEST_FILE ${TEST_FILES} )
40+ # Extract base name for test naming
41+ get_filename_component (TEST_NAME ${TEST_FILE} NAME_WE )
42+
43+ # Run with SingleThreadedExecutor (default)
44+ add_launch_test (${TEST_FILE}
45+ TARGET ${TEST_NAME} _singlethreaded
46+ ARGS "use_events_executor:=false"
47+ )
48+
49+ # Run with EventsExecutor
50+ add_launch_test (${TEST_FILE}
51+ TARGET ${TEST_NAME} _events
52+ ARGS "use_events_executor:=true"
53+ )
54+ endforeach ()
3455
3556 find_package (ament_cmake_mypy REQUIRED )
3657 ament_mypy ()
0 commit comments