diff --git a/rosidl_typesupport_tests/CMakeLists.txt b/rosidl_typesupport_tests/CMakeLists.txt index 7dcc5c1a..e9c82ef7 100644 --- a/rosidl_typesupport_tests/CMakeLists.txt +++ b/rosidl_typesupport_tests/CMakeLists.txt @@ -8,13 +8,16 @@ endif() find_package(ament_cmake REQUIRED) if(BUILD_TESTING) - find_package(ament_lint_auto REQUIRED) - ament_lint_auto_find_test_dependencies() - find_package(rosidl_cmake REQUIRED) find_package(ament_cmake_gtest REQUIRED) - find_package(test_interface_files REQUIRED) + find_package(ament_lint_auto REQUIRED) find_package(rcutils REQUIRED) + find_package(rmw REQUIRED) + find_package(rmw_implementation REQUIRED) + find_package(rosidl_cmake REQUIRED) find_package(rosidl_generator_cpp REQUIRED) + find_package(test_interface_files REQUIRED) + + ament_lint_auto_find_test_dependencies() rosidl_generate_interfaces(${PROJECT_NAME} ${test_interface_files_MSG_FILES} @@ -31,6 +34,8 @@ if(BUILD_TESTING) ) target_link_libraries(test_service_typesupport_cpp "${cpp_typesupport_target}" + rmw::rmw + rmw_implementation::rmw_implementation ) ament_add_gtest(test_service_typesupport_c @@ -38,6 +43,8 @@ if(BUILD_TESTING) ) target_link_libraries(test_service_typesupport_c "${c_typesupport_target}" + rmw::rmw + rmw_implementation::rmw_implementation ) endif() diff --git a/rosidl_typesupport_tests/package.xml b/rosidl_typesupport_tests/package.xml index 938ff0d5..6580c5ec 100644 --- a/rosidl_typesupport_tests/package.xml +++ b/rosidl_typesupport_tests/package.xml @@ -10,17 +10,19 @@ ament_cmake + action_msgs ament_lint_auto ament_lint_common ament_cmake_gtest rcutils + rmw + rmw_implementation rosidl_cmake rosidl_generator_cpp rosidl_typesupport_c rosidl_typesupport_cpp - test_interface_files service_msgs - action_msgs + test_interface_files ament_cmake diff --git a/rosidl_typesupport_tests/test/rosidl_typesupport_c/test_service_typesupport.cpp b/rosidl_typesupport_tests/test/rosidl_typesupport_c/test_service_typesupport.cpp index ecc1df0a..b2e4a2b1 100644 --- a/rosidl_typesupport_tests/test/rosidl_typesupport_c/test_service_typesupport.cpp +++ b/rosidl_typesupport_tests/test/rosidl_typesupport_c/test_service_typesupport.cpp @@ -14,16 +14,20 @@ #include #include +#include #include "gtest/gtest.h" #include "rcutils/allocator.h" +#include "rcutils/env.h" #include "rosidl_runtime_c/string_functions.h" #include "rosidl_typesupport_tests/action/fibonacci.h" #include "rosidl_typesupport_tests/srv/basic_types.h" +#include "rmw/rmw.h" + TEST(test_service_typesupport, event_message_create_and_destroy_invalid_arguments) { rcutils_allocator_t allocator = rcutils_get_default_allocator(); @@ -51,8 +55,17 @@ TEST(test_service_typesupport, basic_types_event_message_create) const rosidl_message_type_support_t * msg_ts = rosidl_typesupport_c__get_message_type_support_handle__rosidl_typesupport_tests__srv__BasicTypes_Event(); // NOLINT - EXPECT_STREQ(srv_ts->typesupport_identifier, "rosidl_typesupport_c"); - EXPECT_STREQ(msg_ts->typesupport_identifier, "rosidl_typesupport_c"); + if (std::string(rmw_get_implementation_identifier()).find("rmw_cyclonedds") == 0) { + EXPECT_STREQ( + srv_ts->typesupport_identifier, + "rosidl_typesupport_introspection_c"); + EXPECT_STREQ( + msg_ts->typesupport_identifier, + "rosidl_typesupport_introspection_c"); + } else { + EXPECT_STREQ(srv_ts->typesupport_identifier, "rosidl_typesupport_c"); + EXPECT_STREQ(msg_ts->typesupport_identifier, "rosidl_typesupport_c"); + } EXPECT_EQ(srv_ts->event_typesupport, msg_ts); @@ -177,6 +190,16 @@ TEST(test_service_typesupport, fibonacci_action_services_event) rosidl_typesupport_c__get_message_type_support_handle__rosidl_typesupport_tests__action__Fibonacci_GetResult_Event(); // NOLINT ASSERT_NE(nullptr, send_goal_event_msg_ts); ASSERT_NE(nullptr, get_result_event_msg_ts); - EXPECT_STREQ(send_goal_event_msg_ts->typesupport_identifier, "rosidl_typesupport_c"); - EXPECT_STREQ(get_result_event_msg_ts->typesupport_identifier, "rosidl_typesupport_c"); + + if (std::string(rmw_get_implementation_identifier()).find("rmw_cyclonedds") == 0) { + EXPECT_STREQ( + send_goal_event_msg_ts->typesupport_identifier, + "rosidl_typesupport_introspection_c"); + EXPECT_STREQ( + get_result_event_msg_ts->typesupport_identifier, + "rosidl_typesupport_introspection_c"); + } else { + EXPECT_STREQ(send_goal_event_msg_ts->typesupport_identifier, "rosidl_typesupport_c"); + EXPECT_STREQ(get_result_event_msg_ts->typesupport_identifier, "rosidl_typesupport_c"); + } } diff --git a/rosidl_typesupport_tests/test/rosidl_typesupport_cpp/test_service_typesupport.cpp b/rosidl_typesupport_tests/test/rosidl_typesupport_cpp/test_service_typesupport.cpp index d711422e..2d42d935 100644 --- a/rosidl_typesupport_tests/test/rosidl_typesupport_cpp/test_service_typesupport.cpp +++ b/rosidl_typesupport_tests/test/rosidl_typesupport_cpp/test_service_typesupport.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include "gtest/gtest.h" @@ -26,6 +27,8 @@ #include "rosidl_typesupport_tests/action/fibonacci.hpp" #include "rosidl_typesupport_tests/srv/basic_types.hpp" +#include "rmw/rmw.h" + TEST(test_service_typesupport, event_message_create_and_destroy_invalid_arguments) { rcutils_allocator_t allocator = rcutils_get_default_allocator(); @@ -57,8 +60,17 @@ TEST(test_service_typesupport, basic_types_event_message_create) const rosidl_message_type_support_t * msg_ts = rosidl_typesupport_cpp::get_message_type_support_handle(); // NOLINT - EXPECT_STREQ(srv_ts->typesupport_identifier, "rosidl_typesupport_cpp"); - EXPECT_STREQ(msg_ts->typesupport_identifier, "rosidl_typesupport_cpp"); + if (std::string(rmw_get_implementation_identifier()).find("rmw_cyclonedds") == 0) { + EXPECT_STREQ( + srv_ts->typesupport_identifier, + "rosidl_typesupport_introspection_cpp"); + EXPECT_STREQ( + msg_ts->typesupport_identifier, + "rosidl_typesupport_introspection_cpp"); + } else { + EXPECT_STREQ(srv_ts->typesupport_identifier, "rosidl_typesupport_cpp"); + EXPECT_STREQ(msg_ts->typesupport_identifier, "rosidl_typesupport_cpp"); + } // typesupports are static so this comparison *should* be valid? EXPECT_EQ(srv_ts->event_typesupport, msg_ts); @@ -181,6 +193,15 @@ TEST(test_service_typesupport, fibonacci_action_services_event) rosidl_typesupport_tests::action::Fibonacci_GetResult::Event>(); ASSERT_NE(nullptr, send_goal_event_msg_ts); ASSERT_NE(nullptr, get_result_event_msg_ts); - EXPECT_STREQ(send_goal_event_msg_ts->typesupport_identifier, "rosidl_typesupport_cpp"); - EXPECT_STREQ(get_result_event_msg_ts->typesupport_identifier, "rosidl_typesupport_cpp"); + if (std::string(rmw_get_implementation_identifier()).find("rmw_cyclonedds") == 0) { + EXPECT_STREQ( + send_goal_event_msg_ts->typesupport_identifier, + "rosidl_typesupport_introspection_cpp"); + EXPECT_STREQ( + get_result_event_msg_ts->typesupport_identifier, + "rosidl_typesupport_introspection_cpp"); + } else { + EXPECT_STREQ(send_goal_event_msg_ts->typesupport_identifier, "rosidl_typesupport_cpp"); + EXPECT_STREQ(get_result_event_msg_ts->typesupport_identifier, "rosidl_typesupport_cpp"); + } }