Skip to content

Commit 79dba0a

Browse files
committed
add qos event unit-test for invalid callbacks
Signed-off-by: Alberto Soragna <[email protected]>
1 parent 476238b commit 79dba0a

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

rclcpp/test/rclcpp/test_qos_event.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,3 +391,31 @@ TEST_F(TestQosEvent, test_on_new_event_callback)
391391
EXPECT_EQ(c1, 2u);
392392
EXPECT_EQ(c2, 2u);
393393
}
394+
395+
TEST_F(TestQosEvent, test_invalid_on_new_event_callback)
396+
{
397+
auto pub = node->create_publisher<test_msgs::msg::Empty>(topic_name, 10);
398+
auto sub = node->create_subscription<test_msgs::msg::Empty>(topic_name, 10, message_callback);
399+
auto dummy_cb = [](size_t count_events) {(void)count_events;};
400+
std::function<void(size_t)> invalid_cb;
401+
402+
EXPECT_NO_THROW(
403+
pub->set_on_new_qos_event_callback(dummy_cb, RCL_PUBLISHER_OFFERED_INCOMPATIBLE_QOS));
404+
405+
EXPECT_NO_THROW(
406+
pub->clear_on_new_qos_event_callback(RCL_PUBLISHER_OFFERED_INCOMPATIBLE_QOS));
407+
408+
EXPECT_NO_THROW(
409+
sub->set_on_new_qos_event_callback(dummy_cb, RCL_SUBSCRIPTION_REQUESTED_INCOMPATIBLE_QOS));
410+
411+
EXPECT_NO_THROW(
412+
sub->clear_on_new_qos_event_callback(RCL_SUBSCRIPTION_REQUESTED_INCOMPATIBLE_QOS));
413+
414+
EXPECT_THROW(
415+
pub->set_on_new_qos_event_callback(invalid_cb, RCL_PUBLISHER_OFFERED_INCOMPATIBLE_QOS),
416+
std::invalid_argument);
417+
418+
EXPECT_THROW(
419+
sub->set_on_new_qos_event_callback(invalid_cb, RCL_SUBSCRIPTION_REQUESTED_INCOMPATIBLE_QOS),
420+
std::invalid_argument);
421+
}

0 commit comments

Comments
 (0)