From deb0e41835f26ad173691a0fd0dd04a05bb51979 Mon Sep 17 00:00:00 2001 From: Jorge Perez Date: Thu, 23 Jul 2020 18:56:50 -0300 Subject: [PATCH 1/3] Add tests proving the required functionality Signed-off-by: Jorge Perez --- rcl/src/rcl/event.c | 2 ++ rcl/test/rcl/test_events.cpp | 23 +++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/rcl/src/rcl/event.c b/rcl/src/rcl/event.c index acba993a2..4260da6e5 100644 --- a/rcl/src/rcl/event.c +++ b/rcl/src/rcl/event.c @@ -138,6 +138,7 @@ rcl_take_event( { bool taken = false; RCL_CHECK_ARGUMENT_FOR_NULL(event, RCL_RET_EVENT_INVALID); + // if (!rcl_event_is_valid(event). RCL_RET_EVENT_INVALID); RCL_CHECK_ARGUMENT_FOR_NULL(event_info, RCL_RET_INVALID_ARGUMENT); rmw_ret_t ret = rmw_take_event(&event->impl->rmw_handle, event_info, &taken); if (RMW_RET_OK != ret) { @@ -179,6 +180,7 @@ rcl_event_fini(rcl_event_t * event) rmw_event_t * rcl_event_get_rmw_handle(const rcl_event_t * event) { + // if (!rcl_event_is_valid(event)) { if (NULL == event) { return NULL; // error already set } else { diff --git a/rcl/test/rcl/test_events.cpp b/rcl/test/rcl/test_events.cpp index 568d13022..d0862600c 100644 --- a/rcl/test/rcl/test_events.cpp +++ b/rcl/test/rcl/test_events.cpp @@ -725,14 +725,6 @@ TEST_F(TestEventFixture, test_bad_event_ini) tear_down_publisher_subscriber(); } -/* - * Passing bad argument to get_rmw_handle - */ -TEST_F(TestEventFixture, test_bad_get_handle) -{ - EXPECT_EQ(NULL, rcl_event_get_rmw_handle(NULL)); -} - /* * Test cases for the event_is_valid function */ @@ -773,6 +765,21 @@ TEST_F(TestEventFixture, test_event_is_valid) tear_down_publisher_subscriber(); } +/* + * Test passing not init to take_event/get_handle + */ +TEST_F(TestEventFixture, test_invalid_to_take_event){ + // nullptr + rmw_offered_deadline_missed_status_t deadline_status; + EXPECT_EQ(RCL_RET_EVENT_INVALID, rcl_take_event(NULL, &deadline_status)); + EXPECT_EQ(NULL, rcl_event_get_rmw_handle(NULL)); + + // Zero Init, invalid + rcl_event_t publisher_event_test = rcl_get_zero_initialized_event(); + EXPECT_EQ(RCL_RET_EVENT_INVALID, rcl_take_event(&publisher_event_test, &deadline_status)); + EXPECT_EQ(NULL, rcl_event_get_rmw_handle(&publisher_event_test)); +} + /* * Basic test subscriber event message lost */ From eed49c7b2a4819b3d703d7d39f2a6ef1bed237a7 Mon Sep 17 00:00:00 2001 From: Jorge Perez Date: Fri, 24 Jul 2020 11:14:13 -0300 Subject: [PATCH 2/3] Add check to the functions Signed-off-by: Jorge Perez --- rcl/src/rcl/event.c | 8 ++++---- rcl/test/rcl/test_events.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/rcl/src/rcl/event.c b/rcl/src/rcl/event.c index 4260da6e5..6fc432345 100644 --- a/rcl/src/rcl/event.c +++ b/rcl/src/rcl/event.c @@ -137,8 +137,9 @@ rcl_take_event( void * event_info) { bool taken = false; - RCL_CHECK_ARGUMENT_FOR_NULL(event, RCL_RET_EVENT_INVALID); - // if (!rcl_event_is_valid(event). RCL_RET_EVENT_INVALID); + if (!rcl_event_is_valid(event)) { + return RCL_RET_EVENT_INVALID; + } RCL_CHECK_ARGUMENT_FOR_NULL(event_info, RCL_RET_INVALID_ARGUMENT); rmw_ret_t ret = rmw_take_event(&event->impl->rmw_handle, event_info, &taken); if (RMW_RET_OK != ret) { @@ -180,8 +181,7 @@ rcl_event_fini(rcl_event_t * event) rmw_event_t * rcl_event_get_rmw_handle(const rcl_event_t * event) { - // if (!rcl_event_is_valid(event)) { - if (NULL == event) { + if (!rcl_event_is_valid(event)) { return NULL; // error already set } else { return &event->impl->rmw_handle; diff --git a/rcl/test/rcl/test_events.cpp b/rcl/test/rcl/test_events.cpp index d0862600c..13e1dc79c 100644 --- a/rcl/test/rcl/test_events.cpp +++ b/rcl/test/rcl/test_events.cpp @@ -768,7 +768,7 @@ TEST_F(TestEventFixture, test_event_is_valid) /* * Test passing not init to take_event/get_handle */ -TEST_F(TestEventFixture, test_invalid_to_take_event){ +TEST_F(TestEventFixture, test_invalid_to_take_event) { // nullptr rmw_offered_deadline_missed_status_t deadline_status; EXPECT_EQ(RCL_RET_EVENT_INVALID, rcl_take_event(NULL, &deadline_status)); From 257424c6bd015453a88e871c9eda8fd886c3d2fc Mon Sep 17 00:00:00 2001 From: Jorge Perez Date: Mon, 27 Jul 2020 12:38:03 -0300 Subject: [PATCH 3/3] Change name to test Signed-off-by: Jorge Perez --- rcl/test/rcl/test_events.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rcl/test/rcl/test_events.cpp b/rcl/test/rcl/test_events.cpp index 13e1dc79c..60d0ef015 100644 --- a/rcl/test/rcl/test_events.cpp +++ b/rcl/test/rcl/test_events.cpp @@ -768,7 +768,7 @@ TEST_F(TestEventFixture, test_event_is_valid) /* * Test passing not init to take_event/get_handle */ -TEST_F(TestEventFixture, test_invalid_to_take_event) { +TEST_F(TestEventFixture, test_event_is_invalid) { // nullptr rmw_offered_deadline_missed_status_t deadline_status; EXPECT_EQ(RCL_RET_EVENT_INVALID, rcl_take_event(NULL, &deadline_status));