Skip to content

Commit f6db2c1

Browse files
christophfroehlichmergify[bot]
authored andcommitted
Move test_components to own package (#1325)
(cherry picked from commit 0bdcd41)
1 parent 9504e2a commit f6db2c1

14 files changed

+79
-23
lines changed

.github/workflows/ci-coverage-build.yml

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ jobs:
3030
controller_interface
3131
controller_manager
3232
hardware_interface
33+
hardware_interface_testing
3334
transmission_interface
3435

3536
vcs-repo-file-url: |

.github/workflows/ci-ros-lint.yml

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
controller_manager
2525
controller_manager_msgs
2626
hardware_interface
27+
hardware_interface_testing
2728
ros2controlcli
2829
ros2_control
2930
ros2_control_test_assets
@@ -49,6 +50,7 @@ jobs:
4950
controller_manager
5051
controller_manager_msgs
5152
hardware_interface
53+
hardware_interface_testing
5254
ros2controlcli
5355
ros2_control
5456
ros2_control_test_assets

controller_manager/package.xml

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
<depend>std_msgs</depend>
3030

3131
<test_depend>ament_cmake_gmock</test_depend>
32+
<test_depend>hardware_interface_testing</test_depend>
3233
<test_depend>ros2_control_test_assets</test_depend>
3334

3435
<export>

hardware_interface/CMakeLists.txt

-23
Original file line numberDiff line numberDiff line change
@@ -96,21 +96,6 @@ if(BUILD_TESTING)
9696
target_link_libraries(test_component_parser hardware_interface)
9797
ament_target_dependencies(test_component_parser ros2_control_test_assets)
9898

99-
add_library(test_components SHARED
100-
test/test_components/test_actuator.cpp
101-
test/test_components/test_sensor.cpp
102-
test/test_components/test_system.cpp)
103-
target_link_libraries(test_components hardware_interface)
104-
ament_target_dependencies(test_components
105-
pluginlib
106-
ros2_control_test_assets
107-
)
108-
install(TARGETS test_components
109-
DESTINATION lib
110-
)
111-
pluginlib_export_plugin_description_file(
112-
hardware_interface test/test_components/test_components.xml)
113-
11499
add_library(test_hardware_components SHARED
115100
test/test_hardware_components/test_single_joint_actuator.cpp
116101
test/test_hardware_components/test_force_torque_sensor.cpp
@@ -127,14 +112,6 @@ if(BUILD_TESTING)
127112
hardware_interface test/test_hardware_components/test_hardware_components.xml
128113
)
129114

130-
ament_add_gmock(test_resource_manager test/test_resource_manager.cpp)
131-
target_link_libraries(test_resource_manager hardware_interface)
132-
ament_target_dependencies(test_resource_manager ros2_control_test_assets)
133-
134-
ament_add_gmock(test_resource_manager_prepare_perform_switch test/test_resource_manager_prepare_perform_switch.cpp)
135-
target_link_libraries(test_resource_manager_prepare_perform_switch hardware_interface)
136-
ament_target_dependencies(test_resource_manager_prepare_perform_switch ros2_control_test_assets)
137-
138115
ament_add_gmock(test_generic_system test/mock_components/test_generic_system.cpp)
139116
target_include_directories(test_generic_system PRIVATE include)
140117
target_link_libraries(test_generic_system hardware_interface)
+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
cmake_minimum_required(VERSION 3.16)
2+
project(hardware_interface_testing LANGUAGES CXX)
3+
4+
if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
5+
add_compile_options(-Wall -Wextra -Werror=conversion -Werror=unused-but-set-variable -Werror=return-type -Werror=shadow)
6+
endif()
7+
8+
set(THIS_PACKAGE_INCLUDE_DEPENDS
9+
control_msgs
10+
hardware_interface
11+
lifecycle_msgs
12+
pluginlib
13+
rclcpp_lifecycle
14+
ros2_control_test_assets
15+
)
16+
17+
find_package(ament_cmake REQUIRED)
18+
foreach(Dependency IN ITEMS ${THIS_PACKAGE_INCLUDE_DEPENDS})
19+
find_package(${Dependency} REQUIRED)
20+
endforeach()
21+
22+
add_library(test_components SHARED
23+
test/test_components/test_actuator.cpp
24+
test/test_components/test_sensor.cpp
25+
test/test_components/test_system.cpp)
26+
ament_target_dependencies(test_components hardware_interface pluginlib ros2_control_test_assets)
27+
install(TARGETS test_components
28+
DESTINATION lib
29+
)
30+
pluginlib_export_plugin_description_file(
31+
hardware_interface test/test_components/test_components.xml)
32+
33+
if(BUILD_TESTING)
34+
35+
find_package(ament_cmake_gmock REQUIRED)
36+
37+
ament_add_gmock(test_resource_manager test/test_resource_manager.cpp)
38+
ament_target_dependencies(test_resource_manager hardware_interface ros2_control_test_assets)
39+
40+
ament_add_gmock(test_resource_manager_prepare_perform_switch test/test_resource_manager_prepare_perform_switch.cpp)
41+
ament_target_dependencies(test_resource_manager_prepare_perform_switch hardware_interface ros2_control_test_assets)
42+
43+
endif()
44+
45+
ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS})
46+
ament_package()

hardware_interface_testing/README.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# hardware_interface_testing
2+
3+
This package contains a set of hardware interfaces and controllers that can be used for other
4+
packages to test their functionality.
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0"?>
2+
<package format="2">
3+
<name>hardware_interface_testing</name>
4+
<version>0.0.0</version>
5+
<description>ros2_control hardware interface testing</description>
6+
<maintainer email="[email protected]">Bence Magyar</maintainer>
7+
<maintainer email="[email protected]">Denis Štogl</maintainer>
8+
<maintainer email="[email protected]">Christoph Froehlich</maintainer>
9+
<license>Apache License 2.0</license>
10+
11+
<buildtool_depend>ament_cmake</buildtool_depend>
12+
13+
<depend>control_msgs</depend>
14+
<depend>hardware_interface</depend>
15+
<depend>lifecycle_msgs</depend>
16+
<depend>pluginlib</depend>
17+
<depend>rclcpp_lifecycle</depend>
18+
<depend>ros2_control_test_assets</depend>
19+
20+
<test_depend>ament_cmake_gmock</test_depend>
21+
22+
<export>
23+
<build_type>ament_cmake</build_type>
24+
</export>
25+
</package>

0 commit comments

Comments
 (0)