diff --git a/rcl/src/rcl/node.c b/rcl/src/rcl/node.c index c64e76015..ab36c9a7b 100644 --- a/rcl/src/rcl/node.c +++ b/rcl/src/rcl/node.c @@ -244,7 +244,7 @@ rcl_node_init( } char * remapped_namespace = NULL; ret = rcl_remap_node_namespace( - &(node->impl->options.arguments), global_args, local_namespace_, + &(node->impl->options.arguments), global_args, name, *allocator, &remapped_namespace); if (RCL_RET_OK != ret) { goto fail; diff --git a/rcl/test/rcl/test_remap_integration.cpp b/rcl/test/rcl/test_remap_integration.cpp index 6fc44bce7..ca7c0afc5 100644 --- a/rcl/test/rcl/test_remap_integration.cpp +++ b/rcl/test/rcl/test_remap_integration.cpp @@ -288,3 +288,19 @@ TEST_F(CLASSNAME(TestRemapIntegrationFixture, RMW_IMPLEMENTATION), remap_relativ EXPECT_EQ(RCL_RET_OK, rcl_node_fini(&node)); } + +TEST_F(CLASSNAME(TestRemapIntegrationFixture, RMW_IMPLEMENTATION), remap_using_node_rules) { + int argc; + char ** argv; + SCOPE_GLOBAL_ARGS( + argc, argv, "process_name", "original_name:__ns:=/new_ns"); + + rcl_node_t node = rcl_get_zero_initialized_node(); + rcl_node_options_t default_options = rcl_node_get_default_options(); + ASSERT_EQ(RCL_RET_OK, rcl_node_init(&node, "original_name", "", &default_options)); + + { // Node namespace gets remapped + EXPECT_STREQ("/new_ns", rcl_node_get_namespace(&node)); + } + EXPECT_EQ(RCL_RET_OK, rcl_node_fini(&node)); +}