Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 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
11 changes: 11 additions & 0 deletions rosidl_typesupport_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ if(BUILD_TESTING)
find_package(test_interface_files REQUIRED)
find_package(rcutils REQUIRED)
find_package(rosidl_generator_cpp REQUIRED)
find_package(rmw REQUIRED)
find_package(rmw_implementation REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
${test_interface_files_MSG_FILES}
Expand All @@ -39,6 +41,15 @@ if(BUILD_TESTING)
target_link_libraries(test_service_typesupport_c
"${c_typesupport_target}"
)

ament_target_dependencies(test_service_typesupport_cpp
rmw
rmw_implementation
)
Comment thread
clalancette marked this conversation as resolved.
Outdated
ament_target_dependencies(test_service_typesupport_c
rmw
rmw_implementation
)
endif()

ament_package()
2 changes: 2 additions & 0 deletions rosidl_typesupport_tests/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
<test_depend>test_interface_files</test_depend>
<test_depend>service_msgs</test_depend>
<test_depend>action_msgs</test_depend>
<test_depend>rmw</test_depend>
<test_depend>rmw_implementation</test_depend>
Comment thread
clalancette marked this conversation as resolved.
Outdated

<export>
<build_type>ament_cmake</build_type>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,22 @@
// See the License for the specific language governing permissions and
// limitations under the License.

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

#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 @@ -12,6 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#include <string>
#include <algorithm>
#include <array>
#include <stdexcept>
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");
}
}