From 6360fecace33b7a38b48a5c5bb781a0a3a213357 Mon Sep 17 00:00:00 2001 From: Julien Enoch Date: Fri, 13 Mar 2026 12:48:03 +0100 Subject: [PATCH] Add tests isolation in launch_testing_ros Signed-off-by: Julien Enoch --- launch_testing_ros/test/examples/check_msgs_launch_test.py | 2 ++ launch_testing_ros/test/examples/check_node_launch_test.py | 2 ++ launch_testing_ros/test/examples/set_param_launch_test.py | 2 ++ .../test/examples/talker_listener_launch_test.py | 3 +++ .../test/examples/wait_for_topic_inject_trigger_test.py | 3 ++- .../test/examples/wait_for_topic_launch_test.py | 7 ++++++- 6 files changed, 17 insertions(+), 2 deletions(-) diff --git a/launch_testing_ros/test/examples/check_msgs_launch_test.py b/launch_testing_ros/test/examples/check_msgs_launch_test.py index 28e7826b9..ce2964427 100644 --- a/launch_testing_ros/test/examples/check_msgs_launch_test.py +++ b/launch_testing_ros/test/examples/check_msgs_launch_test.py @@ -25,6 +25,7 @@ import launch_testing.actions from launch_testing.io_handler import ActiveIoHandler import launch_testing.markers +from launch_testing_ros.actions import EnableRmwIsolation import pytest import rclpy from std_msgs.msg import String @@ -36,6 +37,7 @@ def generate_test_description(): path_to_test = os.path.dirname(__file__) return launch.LaunchDescription([ + EnableRmwIsolation(), launch_ros.actions.Node( executable=sys.executable, arguments=[os.path.join(path_to_test, 'talker.py')], diff --git a/launch_testing_ros/test/examples/check_node_launch_test.py b/launch_testing_ros/test/examples/check_node_launch_test.py index f5cd3090c..5bcb5f123 100644 --- a/launch_testing_ros/test/examples/check_node_launch_test.py +++ b/launch_testing_ros/test/examples/check_node_launch_test.py @@ -23,6 +23,7 @@ import launch_testing.actions from launch_testing.io_handler import ActiveIoHandler import launch_testing.markers +from launch_testing_ros.actions import EnableRmwIsolation import pytest import rclpy @@ -33,6 +34,7 @@ def generate_test_description(): path_to_test = os.path.dirname(__file__) return launch.LaunchDescription([ + EnableRmwIsolation(), launch.actions.TimerAction( period=5.0, actions=[ diff --git a/launch_testing_ros/test/examples/set_param_launch_test.py b/launch_testing_ros/test/examples/set_param_launch_test.py index ef7a85e05..2e4a228a8 100644 --- a/launch_testing_ros/test/examples/set_param_launch_test.py +++ b/launch_testing_ros/test/examples/set_param_launch_test.py @@ -22,6 +22,7 @@ import launch_testing.actions from launch_testing.io_handler import ActiveIoHandler import launch_testing.markers +from launch_testing_ros.actions import EnableRmwIsolation import pytest from rcl_interfaces.srv import SetParameters import rclpy @@ -33,6 +34,7 @@ def generate_test_description(): path_to_test = os.path.dirname(__file__) return launch.LaunchDescription([ + EnableRmwIsolation(), launch_ros.actions.Node( executable=sys.executable, arguments=[os.path.join(path_to_test, 'parameter_blackboard.py')], diff --git a/launch_testing_ros/test/examples/talker_listener_launch_test.py b/launch_testing_ros/test/examples/talker_listener_launch_test.py index c0b873f7c..cd4b07443 100644 --- a/launch_testing_ros/test/examples/talker_listener_launch_test.py +++ b/launch_testing_ros/test/examples/talker_listener_launch_test.py @@ -22,9 +22,11 @@ from launch.launch_service import LaunchService import launch_ros import launch_ros.actions + import launch_testing.actions from launch_testing.io_handler import ActiveIoHandler import launch_testing_ros +from launch_testing_ros.actions import EnableRmwIsolation import pytest @@ -59,6 +61,7 @@ def generate_test_description(): return ( launch.LaunchDescription([ + EnableRmwIsolation(), talker_node, listener_node, # Start tests right away - no need to wait for anything diff --git a/launch_testing_ros/test/examples/wait_for_topic_inject_trigger_test.py b/launch_testing_ros/test/examples/wait_for_topic_inject_trigger_test.py index b1b1135c8..3deb188b8 100644 --- a/launch_testing_ros/test/examples/wait_for_topic_inject_trigger_test.py +++ b/launch_testing_ros/test/examples/wait_for_topic_inject_trigger_test.py @@ -22,6 +22,7 @@ import launch_testing.actions import launch_testing.markers from launch_testing_ros import WaitForTopics +from launch_testing_ros.actions import EnableRmwIsolation import pytest from rclpy import qos from std_msgs.msg import String @@ -55,7 +56,7 @@ def trigger_function(node): @pytest.mark.launch_test @launch_testing.markers.keep_alive def generate_test_description(): - description = [generate_node(), launch_testing.actions.ReadyToTest()] + description = [EnableRmwIsolation(), generate_node(), launch_testing.actions.ReadyToTest()] return launch.LaunchDescription(description) diff --git a/launch_testing_ros/test/examples/wait_for_topic_launch_test.py b/launch_testing_ros/test/examples/wait_for_topic_launch_test.py index 28e852462..ed0cfad2b 100644 --- a/launch_testing_ros/test/examples/wait_for_topic_launch_test.py +++ b/launch_testing_ros/test/examples/wait_for_topic_launch_test.py @@ -23,6 +23,7 @@ import launch_testing.actions import launch_testing.markers from launch_testing_ros import WaitForTopics +from launch_testing_ros.actions import EnableRmwIsolation import pytest @@ -47,7 +48,11 @@ def generate_node(i: int): def generate_test_description(): # 'n' changes the number of nodes and topics generated for this test n = 5 - description = [generate_node(i) for i in range(n)] + [launch_testing.actions.ReadyToTest()] + description = ( + [EnableRmwIsolation()] + + [generate_node(i) for i in range(n)] + + [launch_testing.actions.ReadyToTest()] + ) return launch.LaunchDescription(description), {'count': n}