Skip to content

Missing to call rcl_lifecycle_transition_fini() and rcl_node_fini() in lifecycle test #713

@Barry-Xu-2018

Description

@Barry-Xu-2018

Bug report

Required Info:

  • Operating System:
    All
  • Installation type:
    Binaries and From source
  • Version or commit hash:
    master branch (0de31d0)
  • DDS implementation:
    Any

Steps to reproduce issue

Check codes

Part 1

ret = rcl_lifecycle_transition_init(
&transition, expected_id, &expected_label[0], nullptr, nullptr, &allocator);
EXPECT_EQ(ret, RCL_RET_OK);
rcutils_reset_error();
ret = rcl_lifecycle_transition_init(
&transition, expected_id, &expected_label[0], start, nullptr, &allocator);
EXPECT_EQ(ret, RCL_RET_OK);
rcutils_reset_error();

Part 2

OSRF_TESTING_TOOLS_CPP_SCOPE_EXIT(
{
ASSERT_EQ(RCL_RET_OK, rcl_shutdown(&context));
ASSERT_EQ(RCL_RET_OK, rcl_context_fini(&context));
});
ret = rcl_node_init(&node, "node", "namespace", &context, &options);

Part 3

OSRF_TESTING_TOOLS_CPP_SCOPE_EXIT(
{
ASSERT_EQ(RCL_RET_OK, rcl_shutdown(&context));
ASSERT_EQ(RCL_RET_OK, rcl_context_fini(&context));
});
ret = rcl_node_init(&node, "node", "namespace", &context, &options);

Expected behavior

  • Correctly recycling resource
    • In part 1, once rcl_lifecycle_transition_init() is called successfully, rcl_lifecycle_transition_fini() should be called for recycling resource.
    • In part 2 and part 3, if call rcl_node_init(), while exiting test, rcl_node_fini() should be called for recycling resource.

Actual behavior

  • rcl_lifecycle_transition_fini() isn't called after rcl_lifecycle_transition_init() is called successfully.

  • While exiting test, rcl_node_fini() isn't called.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions