Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions rosidl_typesupport_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -31,13 +34,17 @@ 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
test/rosidl_typesupport_c/test_service_typesupport.cpp
)
target_link_libraries(test_service_typesupport_c
"${c_typesupport_target}"
rmw::rmw
rmw_implementation::rmw_implementation
)
endif()

Expand Down
6 changes: 4 additions & 2 deletions rosidl_typesupport_tests/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,19 @@

<buildtool_depend>ament_cmake</buildtool_depend>

<test_depend>action_msgs</test_depend>
<test_depend>ament_lint_auto</test_depend>
<test_depend>ament_lint_common</test_depend>
<test_depend>ament_cmake_gtest</test_depend>
<test_depend>rcutils</test_depend>
<test_depend>rmw</test_depend>
<test_depend>rmw_implementation</test_depend>
<test_depend>rosidl_cmake</test_depend>
<test_depend>rosidl_generator_cpp</test_depend>
<test_depend>rosidl_typesupport_c</test_depend>
<test_depend>rosidl_typesupport_cpp</test_depend>
<test_depend>test_interface_files</test_depend>
<test_depend>service_msgs</test_depend>
<test_depend>action_msgs</test_depend>
<test_depend>test_interface_files</test_depend>

<export>
<build_type>ament_cmake</build_type>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,20 @@

#include <algorithm>
#include <array>
#include <string>

#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();
Expand Down Expand Up @@ -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);

Expand Down Expand Up @@ -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");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <algorithm>
#include <array>
#include <stdexcept>
#include <string>

#include "gtest/gtest.h"

Expand All @@ -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();
Expand Down Expand Up @@ -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<rosidl_typesupport_tests::srv::BasicTypes_Event>(); // 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);
Expand Down Expand Up @@ -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");
}
}