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");
+ }
}