From a697d1068ec6011f1cbbefc84d3a12a64833dae6 Mon Sep 17 00:00:00 2001 From: Anusha Sharma Date: Sat, 28 Mar 2026 03:38:53 -0400 Subject: [PATCH] Add tests for GPIO parsing behavior in component_parser --- .../test/test_component_parser.cpp | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/hardware_interface/test/test_component_parser.cpp b/hardware_interface/test/test_component_parser.cpp index b2ba94b462..af0b0ce13a 100644 --- a/hardware_interface/test/test_component_parser.cpp +++ b/hardware_interface/test/test_component_parser.cpp @@ -81,6 +81,33 @@ TEST_F(TestComponentParser, missing_attribute_throws_error) ASSERT_THROW(parse_control_resources_from_urdf(broken_urdf_string), std::runtime_error); } +TEST_F(TestComponentParser, gpio_missing_interface_throws_error) +{ + const std::string broken_urdf = std::string(ros2_control_test_assets::urdf_head) + + R"( + + + mock_components/GenericSystem + + + + + + + + + + + + )" + ros2_control_test_assets::urdf_tail; + + // NOTE: + // GPIO interfaces are not strictly validated against hardware interface + // existence during URDF parsing (unlike joints and sensors). + // This test documents current behavior. + ASSERT_NO_THROW(parse_control_resources_from_urdf(broken_urdf)); +} + TEST_F(TestComponentParser, parameter_missing_name_throws_error) { const std::string broken_urdf_string =