Skip to content

Commit 9bab433

Browse files
mergify[bot]christophfroehlichdestogl
authored
Move test_components to own package (backport #1325) (#1340)
* Move `test_components` to own package (#1325) (cherry picked from commit 0bdcd41) --------- Co-authored-by: Christoph Fröhlich <[email protected]> Co-authored-by: Dr. Denis <[email protected]>
1 parent dc7b7be commit 9bab433

File tree

14 files changed

+112
-54
lines changed

14 files changed

+112
-54
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ jobs:
3434
ros2controlcli
3535
ros2_control
3636
ros2_control_test_assets
37+
hardware_interface_testing
3738
transmission_interface
3839

3940
vcs-repo-file-url: |

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

Lines changed: 2 additions & 0 deletions
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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
<depend>std_msgs</depend>
2929

3030
<test_depend>ament_cmake_gmock</test_depend>
31+
<test_depend>hardware_interface_testing</test_depend>
32+
<test_depend>ros2_control_test_assets</test_depend>
3133

3234
<export>
3335
<build_type>ament_cmake</build_type>

hardware_interface/CMakeLists.txt

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,6 @@ if(BUILD_TESTING)
138138
target_link_libraries(test_component_parser ${PROJECT_NAME})
139139
ament_target_dependencies(test_component_parser ros2_control_test_assets)
140140

141-
add_library(test_components SHARED
142-
test/test_components/test_actuator.cpp
143-
test/test_components/test_sensor.cpp
144-
test/test_components/test_system.cpp)
145-
target_link_libraries(test_components ${PROJECT_NAME})
146-
ament_target_dependencies(test_components
147-
pluginlib)
148-
install(TARGETS test_components
149-
DESTINATION lib
150-
)
151-
pluginlib_export_plugin_description_file(
152-
${PROJECT_NAME} test/test_components/test_components.xml)
153-
154141
add_library(test_hardware_components SHARED
155142
test/test_hardware_components/test_single_joint_actuator.cpp
156143
test/test_hardware_components/test_force_torque_sensor.cpp
@@ -166,15 +153,6 @@ if(BUILD_TESTING)
166153
pluginlib_export_plugin_description_file(
167154
${PROJECT_NAME} test/test_hardware_components/test_hardware_components.xml
168155
)
169-
170-
ament_add_gmock(test_resource_manager test/test_resource_manager.cpp)
171-
target_link_libraries(test_resource_manager ${PROJECT_NAME})
172-
ament_target_dependencies(test_resource_manager ros2_control_test_assets)
173-
174-
ament_add_gmock(test_resource_manager_prepare_perform_switch test/test_resource_manager_prepare_perform_switch.cpp)
175-
target_link_libraries(test_resource_manager_prepare_perform_switch hardware_interface)
176-
ament_target_dependencies(test_resource_manager_prepare_perform_switch ros2_control_test_assets)
177-
178156
ament_add_gmock(test_generic_system test/mock_components/test_generic_system.cpp)
179157
target_include_directories(test_generic_system PRIVATE include)
180158
target_link_libraries(test_generic_system ${PROJECT_NAME})
Lines changed: 46 additions & 0 deletions
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+
)
27+
ament_target_dependencies(test_components hardware_interface pluginlib ros2_control_test_assets)
28+
install(TARGETS test_components
29+
DESTINATION lib
30+
)
31+
pluginlib_export_plugin_description_file(
32+
hardware_interface test/test_components/test_components.xml)
33+
34+
if(BUILD_TESTING)
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()
Lines changed: 4 additions & 0 deletions
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.
Lines changed: 25 additions & 0 deletions
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)