From 40d47f3b32aee93e1b555e77c48080e0a998cc09 Mon Sep 17 00:00:00 2001 From: Guillaume Walck Date: Mon, 3 Apr 2023 12:08:16 +0200 Subject: [PATCH] Split tests for init and config missing params --- .../test/test_admittance_controller.cpp | 38 ++++++++++--------- .../test/test_admittance_controller.hpp | 5 +++ 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/admittance_controller/test/test_admittance_controller.cpp b/admittance_controller/test/test_admittance_controller.cpp index cb868bd812..69d114dee8 100644 --- a/admittance_controller/test/test_admittance_controller.cpp +++ b/admittance_controller/test/test_admittance_controller.cpp @@ -21,30 +21,34 @@ #include #include -// Test on_configure returns ERROR when a required parameter is missing -TEST_P(AdmittanceControllerTestParameterizedMissingParameters, one_parameter_is_missing) +// Test on_init returns ERROR when a required parameter is missing +TEST_P(AdmittanceControllerTestParameterizedMissingParameters, one_control_parameter_is_missing) { - auto ret = SetUpController(GetParam()); - // additionally, test params required during configure only if init worked - if (ret == controller_interface::return_type::OK) - { - ASSERT_EQ(controller_->on_configure(rclcpp_lifecycle::State()), NODE_FAILURE); - } - else - { - ASSERT_EQ(ret, controller_interface::return_type::ERROR); - } + ASSERT_EQ(SetUpController(GetParam()), controller_interface::return_type::ERROR); } INSTANTIATE_TEST_SUITE_P( - MissingMandatoryParameterDuringConfiguration, - AdmittanceControllerTestParameterizedMissingParameters, + MissingMandatoryParameterDuringInit, AdmittanceControllerTestParameterizedMissingParameters, ::testing::Values( "admittance.mass", "admittance.selected_axes", "admittance.stiffness", "chainable_command_interfaces", "command_interfaces", "control.frame.id", "ft_sensor.frame.id", - "ft_sensor.name", "sensor_filter_chain.filter2.params.CoG.pos", - "sensor_filter_chain.filter2.params.sensor_frame", "joints", "kinematics.base", - "kinematics.plugin_name", "kinematics.plugin_package", "kinematics.tip", "state_interfaces")); + "ft_sensor.name", "joints", "kinematics.base", "kinematics.plugin_name", + "kinematics.plugin_package", "kinematics.tip", "state_interfaces")); + +// Test on_configure returns FAILURE when a required parameter is missing +TEST_P( + AdmittanceControllerTestParameterizedMissingConfigParameters, one_config_parameter_is_missing) +{ + SetUpController(GetParam()); + ASSERT_EQ(controller_->on_configure(rclcpp_lifecycle::State()), NODE_FAILURE); +} + +INSTANTIATE_TEST_SUITE_P( + MissingMandatoryParameterDuringConfiguration, + AdmittanceControllerTestParameterizedMissingConfigParameters, + ::testing::Values( + "sensor_filter_chain.filter2.params.CoG.pos", + "sensor_filter_chain.filter2.params.sensor_frame")); INSTANTIATE_TEST_SUITE_P( InvalidParameterDuringConfiguration, AdmittanceControllerTestParameterizedInvalidParameters, diff --git a/admittance_controller/test/test_admittance_controller.hpp b/admittance_controller/test/test_admittance_controller.hpp index 2dbec367d4..a7008d93ea 100644 --- a/admittance_controller/test/test_admittance_controller.hpp +++ b/admittance_controller/test/test_admittance_controller.hpp @@ -452,6 +452,11 @@ class AdmittanceControllerTestParameterizedMissingParameters std::map overrides_; }; +class AdmittanceControllerTestParameterizedMissingConfigParameters +: public AdmittanceControllerTestParameterizedMissingParameters +{ +}; + // From the tutorial: https://www.sandordargo.com/blog/2019/04/24/parameterized-testing-with-gtest class AdmittanceControllerTestParameterizedInvalidParameters : public AdmittanceControllerTest,