diff --git a/joint_state_publisher/package.xml b/joint_state_publisher/package.xml index b3e73cfd..b536a3fe 100644 --- a/joint_state_publisher/package.xml +++ b/joint_state_publisher/package.xml @@ -23,6 +23,7 @@ python3-pytest launch_testing launch_testing_ros + ros2topic ament_python diff --git a/joint_state_publisher/test/test_mimic_cycle.py b/joint_state_publisher/test/test_mimic_cycle.py index a66f2482..10ca6af7 100644 --- a/joint_state_publisher/test/test_mimic_cycle.py +++ b/joint_state_publisher/test/test_mimic_cycle.py @@ -19,10 +19,12 @@ from launch_ros.actions import Node import launch_testing import launch_testing.asserts +import launch_testing.markers import pytest @pytest.mark.rostest +@launch_testing.markers.keep_alive def generate_test_description(): test_urdfs_dir = os.path.dirname(__file__) joint_state_publisher = Node( @@ -33,12 +35,15 @@ def generate_test_description(): LaunchDescription([joint_state_publisher, launch_testing.actions.ReadyToTest()]), {'joint_state_publisher': joint_state_publisher}) +class TestMimicCycleRobot(unittest.TestCase): + + def test_termination(self, proc_info, joint_state_publisher): + proc_info.assertWaitForShutdown(process=joint_state_publisher, timeout=10) @launch_testing.post_shutdown_test() -class TestMimicCycleRobot(unittest.TestCase): +class TestMimicCycleRobotAfterShutdown(unittest.TestCase): def test_exit(self, proc_info, proc_output): jsp = list(proc_info.process_names())[0] - # TODO(sloretz) Uncomment when ros2/launch#378 is released - # launch_testing.asserts.assertInStderr(jsp, msg='Found an infinite recursive mimic chain') + launch_testing.asserts.assertInStderr(proc_output, expected_output='Found an infinite recursive mimic chain', process=jsp) launch_testing.asserts.assertExitCodes(proc_info, process=jsp, allowable_exit_codes=[1])