-
Notifications
You must be signed in to change notification settings - Fork 158
Open
Labels
enhancementNew feature or requestNew feature or requestquestionFurther information is requestedFurther information is requested
Description
Bug report
Required Info:
- Operating System:
- Ubuntu 20.04
- Installation type:
- binaries
- Version or commit hash:
- Foxy 0.10.6-1focal.20210901.033555
- DDS implementation:
- Fast
Steps to reproduce issue
import launch_testing
import unittest
import os
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, ExecuteProcess
from launch.substitutions import PathJoinSubstitution, LaunchConfiguration
from launch_ros.actions import Node
from launch.actions import IncludeLaunchDescription
from launch.substitutions import PathJoinSubstitution
from launch_ros.substitutions import FindPackageShare
from launch.launch_description_sources import PythonLaunchDescriptionSource
def generate_test_description():
# This is necessary to get unbuffered output from the process under test
proc_env = os.environ.copy()
proc_env['PYTHONUNBUFFERED'] = '1'
dut_process = ExecuteProcess(cmd=['/usr/bin/sleep', '5'])
pkg_dir = FindPackageShare('gazebo_ros')
full_path = PathJoinSubstitution([pkg_dir] + ['launch', 'gazebo.launch.py'])
gazebo_launch = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
full_path))
return LaunchDescription([
gazebo_launch,
dut_process,
launch_testing.actions.ReadyToTest(),
]), {'dut_process': dut_process}
class TestWait(unittest.TestCase):
def test_wait_for_end(self, proc_output, proc_info, dut_process):
# Wait until process ends
proc_info.assertWaitForShutdown(process=dut_process, timeout=10)
@ launch_testing.post_shutdown_test()
class TestSuccessfulExit(unittest.TestCase):
def test_exit_code(self, proc_info, dut_process):
# Check that dut_process finishes with code 0
launch_testing.asserts.assertExitCodes(proc_info, process=dut_process)
Execute it with launch_test
or as part of add_launch_test
in CMake.
Expected behavior
When it ends, gazebo should be killed.
Actual behavior
Gazebo is not killed.
Additional information
Happens with other nodes besides gazebo. But gazebo is particularly troublesome because I cannot have 2 tests running sequentially using gazebo, because the first test didn't kill the server, and only one server may be running in a machine.
Might be related to #495 because if instead of launch_testing
I use ros2 launch gazebo_ros gazebo.launch.py
, I can kill it properly with Ctrl+C, but not with kill -SIGINT
. Even if I use ros2 launch gazebo_ros gazebo.launch.py --noninteractive
benjinne and abaeyens
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestquestionFurther information is requestedFurther information is requested