Skip to content

Commit 6a40161

Browse files
committed
test: fixes py test launchfiles and re-enables ros_interface_test
1 parent 27883e4 commit 6a40161

7 files changed

Lines changed: 619 additions & 243 deletions

File tree

mujoco_ros/test/CMakeLists.txt

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ function(add_mujoco_ros_integration_test TEST_NAME TEST_SOURCE)
3434
set(TEST_EXECUTABLE ${TEST_NAME})
3535
set(TEST_LAUNCH_NAME ${TEST_NAME}_launch)
3636

37-
# ament_add_gtest(${TEST_EXECUTABLE}
38-
# ${TEST_SOURCE}
39-
# )
4037
ament_add_gtest_executable(${TEST_EXECUTABLE}
4138
${TEST_SOURCE}
4239
)
@@ -61,18 +58,16 @@ add_mujoco_ros_integration_test(
6158
mujoco_env_test
6259
mujoco_env_test.cpp
6360
ROS1_LAUNCH launch/mujoco_env.test
64-
# ROS2_LAUNCH launch/mujoco_env.test
6561
ROS2_LAUNCH launch/mujoco_env.test.py
6662
)
6763

68-
# add_mujoco_ros_integration_test(
69-
# ros_interface_test
70-
# ros_interface_test.cpp
71-
# ROS1_LAUNCH launch/ros_interface.test
72-
# ROS2_LAUNCH launch/ros_interface.test
73-
# # ROS2_LAUNCH launch/ros2/ros_interface.test.py
74-
# TIMEOUT 180
75-
# )
64+
add_mujoco_ros_integration_test(
65+
ros_interface_test
66+
ros_interface_test.cpp
67+
ROS1_LAUNCH launch/ros_interface.test
68+
ROS2_LAUNCH launch/ros_interface.test.py
69+
TIMEOUT 180
70+
)
7671

7772
add_subdirectory(test_plugin)
7873

@@ -95,7 +90,6 @@ add_mujoco_ros_integration_test(
9590
mujoco_render_test
9691
mujoco_render_test.cpp
9792
ROS1_LAUNCH launch/mujoco_render.test
98-
# ROS2_LAUNCH launch/mujoco_render.test
9993
ROS2_LAUNCH launch/mujoco_render.test.py
10094
TIMEOUT 240
10195
)

mujoco_ros/test/launch/mujoco_env.test.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44
from launch.actions import DeclareLaunchArgument, ExecuteProcess, SetEnvironmentVariable
55
from launch.substitutions import LaunchConfiguration
66
from launch_ros.actions import SetParameter
7+
78
import launch_testing
89
import launch_testing.actions
10+
import launch_testing.asserts
11+
import launch_testing.util
912

1013

1114
def generate_test_description():
1215
test_binary = LaunchConfiguration('test_binary')
16+
timeout = LaunchConfiguration('timeout')
1317

1418
test_proc = ExecuteProcess(
1519
cmd=[test_binary],
@@ -19,15 +23,18 @@ def generate_test_description():
1923

2024
return LaunchDescription([
2125
DeclareLaunchArgument('test_binary'),
26+
DeclareLaunchArgument('timeout', default_value="10"),
2227
SetEnvironmentVariable(
2328
'ROSCONSOLE_FORMAT',
2429
'[${severity}] [${time}] [${logger}] [${node}]: ${message}'
2530
),
2631
SetParameter(name='use_sim_time', value=True),
2732
test_proc,
33+
launch_testing.util.KeepAliveProc(),
2834
launch_testing.actions.ReadyToTest(),
2935
]), {
3036
'test_proc': test_proc,
37+
'timeout': timeout,
3138
}
3239

3340
class TestGTestWaitForCompletion(unittest.TestCase):

mujoco_ros/test/launch/mujoco_render.test.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@
44
from launch_ros.actions import SetParameter
55
from launch.actions import DeclareLaunchArgument, ExecuteProcess, SetEnvironmentVariable
66
from launch.substitutions import LaunchConfiguration
7+
8+
import launch_testing
79
import launch_testing.actions
10+
import launch_testing.asserts
11+
import launch_testing.util
812

913

1014
def generate_test_description():
1115
test_binary = LaunchConfiguration('test_binary')
16+
timeout = LaunchConfiguration('timeout')
1217

1318
test_proc = ExecuteProcess(
1419
cmd=[test_binary],
@@ -18,15 +23,18 @@ def generate_test_description():
1823

1924
return LaunchDescription([
2025
DeclareLaunchArgument('test_binary'),
26+
DeclareLaunchArgument('timeout', default_value="10"),
2127
SetEnvironmentVariable(
2228
'ROSCONSOLE_FORMAT',
2329
'[${severity}] [${time}] [${logger}] [${node}]: ${message}'
2430
),
2531
SetParameter(name='use_sim_time', value=True),
2632
test_proc,
33+
launch_testing.util.KeepAliveProc(),
2734
launch_testing.actions.ReadyToTest(),
2835
]), {
2936
'test_proc': test_proc,
37+
'timeout': timeout,
3038
}
3139

3240
class TestGTestWaitForCompletion(unittest.TestCase):

mujoco_ros/test/launch/mujoco_ros_plugin.test.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,17 @@
44
from launch import LaunchDescription
55
from launch.actions import DeclareLaunchArgument, ExecuteProcess, SetEnvironmentVariable
66
from launch.substitutions import LaunchConfiguration
7+
8+
import launch_testing
79
import launch_testing.actions
10+
import launch_testing.asserts
11+
import launch_testing.util
812

913

1014
def generate_test_description():
1115
test_binary = LaunchConfiguration('test_binary')
16+
timeout = LaunchConfiguration('timeout')
17+
1218
params_file = str(Path(__file__).resolve().with_name('mujoco_ros_plugin.params.yaml'))
1319

1420
test_proc = ExecuteProcess(
@@ -19,14 +25,17 @@ def generate_test_description():
1925

2026
return LaunchDescription([
2127
DeclareLaunchArgument('test_binary'),
28+
DeclareLaunchArgument('timeout', default_value="10"),
2229
SetEnvironmentVariable(
2330
'ROSCONSOLE_FORMAT',
2431
'[${severity}] [${time}] [${logger}] [${node}]: ${message}'
2532
),
2633
test_proc,
34+
launch_testing.util.KeepAliveProc(),
2735
launch_testing.actions.ReadyToTest(),
2836
]), {
2937
'test_proc': test_proc,
38+
'timeout': timeout,
3039
}
3140

3241
class TestGTestWaitForCompletion(unittest.TestCase):
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import unittest
2+
3+
from launch import LaunchDescription
4+
from launch_ros.actions import SetParameter
5+
from launch.actions import DeclareLaunchArgument, ExecuteProcess, SetEnvironmentVariable
6+
from launch.substitutions import LaunchConfiguration
7+
8+
import launch_testing
9+
import launch_testing.actions
10+
import launch_testing.asserts
11+
import launch_testing.util
12+
13+
def generate_test_description():
14+
test_binary = LaunchConfiguration('test_binary')
15+
timeout = LaunchConfiguration('timeout')
16+
17+
test_proc = ExecuteProcess(
18+
cmd=[test_binary],
19+
name='ros_interface_test',
20+
output='screen',
21+
)
22+
return LaunchDescription([
23+
DeclareLaunchArgument('test_binary'),
24+
DeclareLaunchArgument('timeout', default_value="10"),
25+
SetEnvironmentVariable(
26+
'ROSCONSOLE_FORMAT',
27+
'[${severity}] [${time}] [${logger}] [${node}]: ${message}'
28+
),
29+
SetParameter(name='use_sim_time', value=True),
30+
test_proc,
31+
launch_testing.util.KeepAliveProc(),
32+
launch_testing.actions.ReadyToTest(),
33+
]), {
34+
'test_proc': test_proc,
35+
'timeout': timeout,
36+
}
37+
38+
class TestGTestWaitForCompletion(unittest.TestCase):
39+
def test_gtest_run_complete(self, proc_info, test_proc):
40+
proc_info.assertWaitForShutdown(test_proc)
41+
42+
@launch_testing.post_shutdown_test()
43+
class TestGTestProcessPostShutdown(unittest.TestCase):
44+
def test_gtest_pass(self, proc_info, test_proc):
45+
launch_testing.asserts.assertExitCodes(proc_info, process=test_proc)

0 commit comments

Comments
 (0)