Skip to content

Commit

Permalink
Use RCUTILS_NO_FAULT_INJECTION() macro.
Browse files Browse the repository at this point in the history
Signed-off-by: Michel Hidalgo <[email protected]>
  • Loading branch information
hidmic committed Sep 30, 2020
1 parent 8211835 commit 5ebb778
Show file tree
Hide file tree
Showing 6 changed files with 80 additions and 74 deletions.
10 changes: 5 additions & 5 deletions test_rmw_implementation/test/test_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,11 +158,11 @@ TEST_F(CLASSNAME(TestClient, RMW_IMPLEMENTATION), create_with_internal_errors) {
rmw_client_t * client =
rmw_create_client(node, ts, service_name, &rmw_qos_profile_default);
if (client) {
int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
rmw_ret_t ret = rmw_destroy_client(node, client);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
rcutils_fault_injection_set_count(count);
RCUTILS_NO_FAULT_INJECTION(
{
rmw_ret_t ret = rmw_destroy_client(node, client);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
});
} else {
rmw_reset_error();
}
Expand Down
9 changes: 5 additions & 4 deletions test_rmw_implementation/test/test_create_destroy_node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,10 +145,11 @@ TEST_F(
constexpr char node_namespace[] = "/my_ns";
rmw_node_t * node = rmw_create_node(&context, node_name, node_namespace);
if (node) {
int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
EXPECT_EQ(RMW_RET_OK, rmw_destroy_node(node)) << rmw_get_error_string().str;
rcutils_fault_injection_set_count(count);
RCUTILS_NO_FAULT_INJECTION(
{
rmw_ret_t ret = rmw_destroy_node(node);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
});
} else {
rmw_reset_error();
}
Expand Down
68 changes: 38 additions & 30 deletions test_rmw_implementation/test/test_init_shutdown.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -183,51 +183,59 @@ TEST_F(CLASSNAME(TestInitShutdown, RMW_IMPLEMENTATION), init_with_internal_error
rmw_context_t context = rmw_get_zero_initialized_context();
rmw_ret_t ret = rmw_init(&options, &context);

int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
if (RMW_RET_OK == ret) {
EXPECT_EQ(RMW_RET_OK, rmw_shutdown(&context)) << rmw_get_error_string().str;
EXPECT_EQ(RMW_RET_OK, rmw_context_fini(&context)) << rmw_get_error_string().str;
} else {
rmw_reset_error();
}
rcutils_fault_injection_set_count(count);
RCUTILS_NO_FAULT_INJECTION(
{
if (RMW_RET_OK == ret) {
ret = rmw_shutdown(&context);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
ret = rmw_context_fini(&context);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
} else {
rmw_reset_error();
}
});
});
}

TEST_F(CLASSNAME(TestInitShutdown, RMW_IMPLEMENTATION), shutdown_with_internal_errors) {
RCUTILS_FAULT_INJECTION_TEST(
{
rmw_ret_t ret = RMW_RET_OK;
rmw_context_t context = rmw_get_zero_initialized_context();

int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
ASSERT_EQ(RMW_RET_OK, rmw_init(&options, &context)) << rmw_get_error_string().str;
rcutils_fault_injection_set_count(count);

rmw_ret_t ret = rmw_shutdown(&context);

count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
if (RMW_RET_OK != ret) {
rmw_reset_error();

EXPECT_EQ(RMW_RET_OK, rmw_shutdown(&context)) << rmw_get_error_string().str;
}
EXPECT_EQ(RMW_RET_OK, rmw_context_fini(&context)) << rmw_get_error_string().str;
rcutils_fault_injection_set_count(count);
RCUTILS_NO_FAULT_INJECTION(
{
ret = rmw_init(&options, &context);
ASSERT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
});

ret = rmw_shutdown(&context);

RCUTILS_NO_FAULT_INJECTION(
{
if (RMW_RET_OK != ret) {
rmw_reset_error();

ret = rmw_shutdown(&context);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
}
ret = rmw_context_fini(&context);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
});
});
}

TEST_F(CLASSNAME(TestInitShutdown, RMW_IMPLEMENTATION), context_fini_with_internal_errors) {
RCUTILS_FAULT_INJECTION_TEST(
{
rmw_context_t context = rmw_get_zero_initialized_context();
int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
EXPECT_EQ(RMW_RET_OK, rmw_init(&options, &context)) << rmw_get_error_string().str;
EXPECT_EQ(RMW_RET_OK, rmw_shutdown(&context)) << rmw_get_error_string().str;
rcutils_fault_injection_set_count(count);
RCUTILS_NO_FAULT_INJECTION(
{
rmw_ret_t ret = rmw_init(&options, &context);
ASSERT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
ret = rmw_shutdown(&context);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
});

if (RMW_RET_OK != rmw_context_fini(&context)) {
rmw_reset_error();
Expand Down
25 changes: 12 additions & 13 deletions test_rmw_implementation/test/test_service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,14 +156,13 @@ TEST_F(CLASSNAME(TestService, RMW_IMPLEMENTATION), create_with_internal_errors)
ROSIDL_GET_SRV_TYPE_SUPPORT(test_msgs, srv, BasicTypes);
RCUTILS_FAULT_INJECTION_TEST(
{
rmw_service_t * srv =
rmw_create_service(node, ts, service_name, &rmw_qos_profile_default);
rmw_service_t * srv = rmw_create_service(node, ts, service_name, &rmw_qos_profile_default);
if (srv) {
int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
rmw_ret_t ret = rmw_destroy_service(node, srv);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
rcutils_fault_injection_set_count(count);
RCUTILS_NO_FAULT_INJECTION(
{
rmw_ret_t ret = rmw_destroy_service(node, srv);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
});
} else {
rmw_reset_error();
}
Expand All @@ -176,12 +175,12 @@ TEST_F(CLASSNAME(TestService, RMW_IMPLEMENTATION), destroy_with_internal_errors)
ROSIDL_GET_SRV_TYPE_SUPPORT(test_msgs, srv, BasicTypes);
RCUTILS_FAULT_INJECTION_TEST(
{
int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
rmw_service_t * srv =
rmw_create_service(node, ts, service_name, &rmw_qos_profile_default);
ASSERT_NE(nullptr, srv) << rmw_get_error_string().str;
rcutils_fault_injection_set_count(count);
rmw_service_t * srv = nullptr;
RCUTILS_NO_FAULT_INJECTION(
{
srv = rmw_create_service(node, ts, service_name, &rmw_qos_profile_default);
ASSERT_NE(nullptr, srv) << rmw_get_error_string().str;
});
if (RMW_RET_OK != rmw_destroy_service(node, srv)) {
rmw_reset_error();
}
Expand Down
29 changes: 14 additions & 15 deletions test_rmw_implementation/test/test_subscription.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -164,22 +164,21 @@ TEST_F(CLASSNAME(TestSubscription, RMW_IMPLEMENTATION), create_with_internal_err

RCUTILS_FAULT_INJECTION_TEST(
{
rmw_subscription_t * sub = nullptr;
rmw_subscription_options_t options = rmw_get_default_subscription_options();
rmw_subscription_t * sub =
rmw_create_subscription(node, ts, topic_name, &rmw_qos_profile_default, &options);
sub = rmw_create_subscription(node, ts, topic_name, &rmw_qos_profile_default, &options);
if (sub) {
int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
rmw_ret_t ret = rmw_destroy_subscription(node, sub);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
rcutils_fault_injection_set_count(count);
RCUTILS_NO_FAULT_INJECTION(
{
rmw_ret_t ret = rmw_destroy_subscription(node, sub);
EXPECT_EQ(RMW_RET_OK, ret) << rmw_get_error_string().str;
});
} else {
rmw_reset_error();
}
});
}


TEST_F(CLASSNAME(TestSubscription, RMW_IMPLEMENTATION), destroy_with_bad_arguments) {
rmw_subscription_options_t options = rmw_get_default_subscription_options();
constexpr char topic_name[] = "/test";
Expand Down Expand Up @@ -218,13 +217,13 @@ TEST_F(CLASSNAME(TestSubscription, RMW_IMPLEMENTATION), destroy_with_internal_er

RCUTILS_FAULT_INJECTION_TEST(
{
int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);
rmw_subscription_options_t options = rmw_get_default_subscription_options();
rmw_subscription_t * sub =
rmw_create_subscription(node, ts, topic_name, &rmw_qos_profile_default, &options);
ASSERT_NE(nullptr, sub) << rmw_get_error_string().str;
rcutils_fault_injection_set_count(count);
rmw_subscription_t * sub = nullptr;
RCUTILS_NO_FAULT_INJECTION(
{
rmw_subscription_options_t options = rmw_get_default_subscription_options();
sub = rmw_create_subscription(node, ts, topic_name, &rmw_qos_profile_default, &options);
ASSERT_NE(nullptr, sub) << rmw_get_error_string().str;
});
if (RMW_RET_OK != rmw_destroy_subscription(node, sub)) {
rmw_reset_error();
}
Expand Down
13 changes: 6 additions & 7 deletions test_rmw_implementation/test/test_wait_set.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,16 +86,15 @@ TEST_F(CLASSNAME(TestWaitSet, RMW_IMPLEMENTATION), rmw_create_wait_set)
{
wait_set = rmw_create_wait_set(&context, 0);

int64_t count = rcutils_fault_injection_get_count();
rcutils_fault_injection_set_count(RCUTILS_FAULT_INJECTION_NEVER_FAIL);

if (wait_set != nullptr) {
ret = rmw_destroy_wait_set(wait_set);
EXPECT_EQ(ret, RMW_RET_OK) << rcutils_get_error_string().str;
if (wait_set) {
RCUTILS_NO_FAULT_INJECTION(
{
ret = rmw_destroy_wait_set(wait_set);
EXPECT_EQ(ret, RMW_RET_OK) << rcutils_get_error_string().str;
});
} else {
rmw_reset_error();
}
rcutils_fault_injection_set_count(count);
});
}

Expand Down

0 comments on commit 5ebb778

Please sign in to comment.