refactor init to not be global (#336)
* refactor init to not be global Signed-off-by: William Woodall <william@osrfoundation.org> * style changes Signed-off-by: William Woodall <william@osrfoundation.org> * refactor to hide use of C11 atomics in implementation Signed-off-by: William Woodall <william@osrfoundation.org> * fix new action tests Signed-off-by: William Woodall <william@osrfoundation.org> * use alternative atomic init for Windows support * updates after rebase Signed-off-by: William Woodall <william@osrfoundation.org> * cleanup rmw_init_options before copying Signed-off-by: William Woodall <william@osrfoundation.org> * fix two bugs in new init code * relax validity checks in a few places to facilitate post shutdown cleanup Signed-off-by: William Woodall <william@osrfoundation.org> * fixing tests for new API behavior Signed-off-by: William Woodall <william@osrfoundation.org> * to allocator -> to allocate * acutally call rmw_shutdown() and address review comments Signed-off-by: William Woodall <william@osrfoundation.org>
This commit is contained in:
parent
dfaa412bbf
commit
97ad0013e2
55 changed files with 1951 additions and 629 deletions
|
@ -19,6 +19,8 @@
|
|||
#include <gtest/gtest.h>
|
||||
#include <vector>
|
||||
|
||||
#include "osrf_testing_tools_cpp/scope_exit.hpp"
|
||||
|
||||
#include "lifecycle_msgs/msg/state.h"
|
||||
#include "lifecycle_msgs/msg/transition.h"
|
||||
|
||||
|
@ -32,20 +34,30 @@
|
|||
|
||||
class TestDefaultStateMachine : public ::testing::Test
|
||||
{
|
||||
protected:
|
||||
public:
|
||||
rcl_context_t * context_ptr;
|
||||
rcl_node_t * node_ptr;
|
||||
const rcl_allocator_t * allocator;
|
||||
|
||||
void SetUp()
|
||||
{
|
||||
rcl_ret_t ret;
|
||||
ret = rcl_init(0, nullptr, rcl_get_default_allocator());
|
||||
ASSERT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
|
||||
{
|
||||
rcl_init_options_t init_options = rcl_get_zero_initialized_init_options();
|
||||
ret = rcl_init_options_init(&init_options, rcl_get_default_allocator());
|
||||
ASSERT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
|
||||
OSRF_TESTING_TOOLS_CPP_SCOPE_EXIT({
|
||||
EXPECT_EQ(RCL_RET_OK, rcl_init_options_fini(&init_options)) << rcl_get_error_string().str;
|
||||
});
|
||||
this->context_ptr = new rcl_context_t;
|
||||
*this->context_ptr = rcl_get_zero_initialized_context();
|
||||
ret = rcl_init(0, nullptr, &init_options, this->context_ptr);
|
||||
ASSERT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
|
||||
}
|
||||
this->node_ptr = new rcl_node_t;
|
||||
*this->node_ptr = rcl_get_zero_initialized_node();
|
||||
const char * name = "test_state_machine_node";
|
||||
rcl_node_options_t node_options = rcl_node_get_default_options();
|
||||
ret = rcl_node_init(this->node_ptr, name, "", &node_options);
|
||||
ret = rcl_node_init(this->node_ptr, name, "", this->context_ptr, &node_options);
|
||||
ASSERT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
|
||||
const rcl_node_options_t * node_ops = rcl_node_get_options(this->node_ptr);
|
||||
this->allocator = &node_ops->allocator;
|
||||
|
@ -56,7 +68,10 @@ protected:
|
|||
rcl_ret_t ret = rcl_node_fini(this->node_ptr);
|
||||
delete this->node_ptr;
|
||||
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
|
||||
ret = rcl_shutdown();
|
||||
ret = rcl_shutdown(this->context_ptr);
|
||||
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
|
||||
ret = rcl_context_fini(this->context_ptr);
|
||||
delete this->context_ptr;
|
||||
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue