From d07d494bb4fbce8a938958d8bef72d497dc97668 Mon Sep 17 00:00:00 2001 From: brawner Date: Thu, 1 Oct 2020 13:10:07 -0700 Subject: [PATCH] Increase coverage of guard_condition.cpp to 100% (#1369) Signed-off-by: Stephen Brawner --- rclcpp/test/CMakeLists.txt | 2 +- rclcpp/test/rclcpp/test_guard_condition.cpp | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/rclcpp/test/CMakeLists.txt b/rclcpp/test/CMakeLists.txt index 69a04dcf78..5b42d31b40 100644 --- a/rclcpp/test/CMakeLists.txt +++ b/rclcpp/test/CMakeLists.txt @@ -567,7 +567,7 @@ endif() ament_add_gtest(test_guard_condition rclcpp/test_guard_condition.cpp APPEND_LIBRARY_DIRS "${append_library_dirs}") if(TARGET test_guard_condition) - target_link_libraries(test_guard_condition ${PROJECT_NAME}) + target_link_libraries(test_guard_condition ${PROJECT_NAME} mimick) endif() ament_add_gtest(test_wait_set rclcpp/test_wait_set.cpp diff --git a/rclcpp/test/rclcpp/test_guard_condition.cpp b/rclcpp/test/rclcpp/test_guard_condition.cpp index 474d1d4bcc..8100cf1c9b 100644 --- a/rclcpp/test/rclcpp/test_guard_condition.cpp +++ b/rclcpp/test/rclcpp/test_guard_condition.cpp @@ -18,6 +18,8 @@ #include "rclcpp/rclcpp.hpp" +#include "../mocking_utils/patch.hpp" + class TestGuardCondition : public ::testing::Test { protected: @@ -54,6 +56,14 @@ TEST_F(TestGuardCondition, construction_and_destruction) { (void)gc; }, rclcpp::exceptions::RCLInvalidArgument); } + + { + auto mock = mocking_utils::inject_on_return( + "lib:rclcpp", rcl_guard_condition_fini, RCL_RET_ERROR); + auto gc = std::make_shared(); + // This just logs an error on destruction + EXPECT_NO_THROW(gc.reset()); + } } /* @@ -82,6 +92,13 @@ TEST_F(TestGuardCondition, get_rcl_guard_condition) { TEST_F(TestGuardCondition, trigger) { { auto gc = std::make_shared(); - gc->trigger(); + EXPECT_NO_THROW(gc->trigger()); + + { + auto mock = mocking_utils::patch_and_return( + "lib:rclcpp", rcl_trigger_guard_condition, RCL_RET_ERROR); + auto gc = std::make_shared(); + EXPECT_THROW(gc->trigger(), rclcpp::exceptions::RCLError); + } } }