From 0af90cbdfaa04d1a5917d86b63f5456785bbfd9f Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Mon, 22 Jan 2024 22:16:52 +0000 Subject: [PATCH] Move test_components to own package together with tests of hardware_interface package, to break circular dependency --- controller_manager/package.xml | 1 + hardware_interface/CMakeLists.txt | 23 ---------- hardware_interface_testing/CMakeLists.txt | 46 +++++++++++++++++++ hardware_interface_testing/README.md | 4 ++ hardware_interface_testing/package.xml | 25 ++++++++++ .../test/test_components/test_actuator.cpp | 0 .../test/test_components/test_components.xml | 0 .../test/test_components/test_sensor.cpp | 0 .../test/test_components/test_system.cpp | 0 .../test/test_resource_manager.cpp | 0 .../test/test_resource_manager.hpp | 0 ...esource_manager_prepare_perform_switch.cpp | 0 12 files changed, 76 insertions(+), 23 deletions(-) create mode 100644 hardware_interface_testing/CMakeLists.txt create mode 100644 hardware_interface_testing/README.md create mode 100644 hardware_interface_testing/package.xml rename {hardware_interface => hardware_interface_testing}/test/test_components/test_actuator.cpp (100%) rename {hardware_interface => hardware_interface_testing}/test/test_components/test_components.xml (100%) rename {hardware_interface => hardware_interface_testing}/test/test_components/test_sensor.cpp (100%) rename {hardware_interface => hardware_interface_testing}/test/test_components/test_system.cpp (100%) rename {hardware_interface => hardware_interface_testing}/test/test_resource_manager.cpp (100%) rename {hardware_interface => hardware_interface_testing}/test/test_resource_manager.hpp (100%) rename {hardware_interface => hardware_interface_testing}/test/test_resource_manager_prepare_perform_switch.cpp (100%) diff --git a/controller_manager/package.xml b/controller_manager/package.xml index 33e0004e78..e534e39268 100644 --- a/controller_manager/package.xml +++ b/controller_manager/package.xml @@ -29,6 +29,7 @@ std_msgs ament_cmake_gmock + hardware_interface_testing ros2_control_test_assets diff --git a/hardware_interface/CMakeLists.txt b/hardware_interface/CMakeLists.txt index 35823b3ce9..2613ba735a 100644 --- a/hardware_interface/CMakeLists.txt +++ b/hardware_interface/CMakeLists.txt @@ -79,21 +79,6 @@ if(BUILD_TESTING) target_link_libraries(test_component_parser hardware_interface) ament_target_dependencies(test_component_parser ros2_control_test_assets) - add_library(test_components SHARED - test/test_components/test_actuator.cpp - test/test_components/test_sensor.cpp - test/test_components/test_system.cpp) - target_link_libraries(test_components hardware_interface) - ament_target_dependencies(test_components - pluginlib - ros2_control_test_assets - ) - install(TARGETS test_components - DESTINATION lib - ) - pluginlib_export_plugin_description_file( - hardware_interface test/test_components/test_components.xml) - add_library(test_hardware_components SHARED test/test_hardware_components/test_single_joint_actuator.cpp test/test_hardware_components/test_force_torque_sensor.cpp @@ -110,14 +95,6 @@ if(BUILD_TESTING) hardware_interface test/test_hardware_components/test_hardware_components.xml ) - ament_add_gmock(test_resource_manager test/test_resource_manager.cpp) - target_link_libraries(test_resource_manager hardware_interface) - ament_target_dependencies(test_resource_manager ros2_control_test_assets) - - ament_add_gmock(test_resource_manager_prepare_perform_switch test/test_resource_manager_prepare_perform_switch.cpp) - target_link_libraries(test_resource_manager_prepare_perform_switch hardware_interface) - ament_target_dependencies(test_resource_manager_prepare_perform_switch ros2_control_test_assets) - ament_add_gmock(test_generic_system test/mock_components/test_generic_system.cpp) target_include_directories(test_generic_system PRIVATE include) target_link_libraries(test_generic_system hardware_interface) diff --git a/hardware_interface_testing/CMakeLists.txt b/hardware_interface_testing/CMakeLists.txt new file mode 100644 index 0000000000..8e88a677bf --- /dev/null +++ b/hardware_interface_testing/CMakeLists.txt @@ -0,0 +1,46 @@ +cmake_minimum_required(VERSION 3.16) +project(hardware_interface_testing LANGUAGES CXX) + +if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + add_compile_options(-Wall -Wextra -Werror=conversion -Werror=unused-but-set-variable -Werror=return-type -Werror=shadow) +endif() + +set(THIS_PACKAGE_INCLUDE_DEPENDS + control_msgs + hardware_interface + lifecycle_msgs + pluginlib + rclcpp_lifecycle + ros2_control_test_assets +) + +find_package(ament_cmake REQUIRED) +foreach(Dependency IN ITEMS ${THIS_PACKAGE_INCLUDE_DEPENDS}) + find_package(${Dependency} REQUIRED) +endforeach() + +add_library(test_components SHARED +test/test_components/test_actuator.cpp +test/test_components/test_sensor.cpp +test/test_components/test_system.cpp) +ament_target_dependencies(test_components hardware_interface pluginlib ros2_control_test_assets) +install(TARGETS test_components +DESTINATION lib +) +pluginlib_export_plugin_description_file( +hardware_interface test/test_components/test_components.xml) + +if(BUILD_TESTING) + + find_package(ament_cmake_gmock REQUIRED) + + ament_add_gmock(test_resource_manager test/test_resource_manager.cpp) + ament_target_dependencies(test_resource_manager hardware_interface ros2_control_test_assets) + + ament_add_gmock(test_resource_manager_prepare_perform_switch test/test_resource_manager_prepare_perform_switch.cpp) + ament_target_dependencies(test_resource_manager_prepare_perform_switch hardware_interface ros2_control_test_assets) + +endif() + +ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS}) +ament_package() diff --git a/hardware_interface_testing/README.md b/hardware_interface_testing/README.md new file mode 100644 index 0000000000..cba28d74a5 --- /dev/null +++ b/hardware_interface_testing/README.md @@ -0,0 +1,4 @@ +# hardware_interface_testing + +This package contains a set of hardware interfaces and controllers that can be used for other +packages to test their functionality. diff --git a/hardware_interface_testing/package.xml b/hardware_interface_testing/package.xml new file mode 100644 index 0000000000..841c77626f --- /dev/null +++ b/hardware_interface_testing/package.xml @@ -0,0 +1,25 @@ + + + hardware_interface_testing + 0.0.0 + ros2_control hardware interface testing + Bence Magyar + Denis Štogl + Christoph Froehlich + Apache License 2.0 + + ament_cmake + + control_msgs + hardware_interface + lifecycle_msgs + pluginlib + rclcpp_lifecycle + ros2_control_test_assets + + ament_cmake_gmock + + + ament_cmake + + diff --git a/hardware_interface/test/test_components/test_actuator.cpp b/hardware_interface_testing/test/test_components/test_actuator.cpp similarity index 100% rename from hardware_interface/test/test_components/test_actuator.cpp rename to hardware_interface_testing/test/test_components/test_actuator.cpp diff --git a/hardware_interface/test/test_components/test_components.xml b/hardware_interface_testing/test/test_components/test_components.xml similarity index 100% rename from hardware_interface/test/test_components/test_components.xml rename to hardware_interface_testing/test/test_components/test_components.xml diff --git a/hardware_interface/test/test_components/test_sensor.cpp b/hardware_interface_testing/test/test_components/test_sensor.cpp similarity index 100% rename from hardware_interface/test/test_components/test_sensor.cpp rename to hardware_interface_testing/test/test_components/test_sensor.cpp diff --git a/hardware_interface/test/test_components/test_system.cpp b/hardware_interface_testing/test/test_components/test_system.cpp similarity index 100% rename from hardware_interface/test/test_components/test_system.cpp rename to hardware_interface_testing/test/test_components/test_system.cpp diff --git a/hardware_interface/test/test_resource_manager.cpp b/hardware_interface_testing/test/test_resource_manager.cpp similarity index 100% rename from hardware_interface/test/test_resource_manager.cpp rename to hardware_interface_testing/test/test_resource_manager.cpp diff --git a/hardware_interface/test/test_resource_manager.hpp b/hardware_interface_testing/test/test_resource_manager.hpp similarity index 100% rename from hardware_interface/test/test_resource_manager.hpp rename to hardware_interface_testing/test/test_resource_manager.hpp diff --git a/hardware_interface/test/test_resource_manager_prepare_perform_switch.cpp b/hardware_interface_testing/test/test_resource_manager_prepare_perform_switch.cpp similarity index 100% rename from hardware_interface/test/test_resource_manager_prepare_perform_switch.cpp rename to hardware_interface_testing/test/test_resource_manager_prepare_perform_switch.cpp