Enforce -r/--remap flags. (#491)
* Enforce -r/--remap flags. Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com> * Cast size_t to int explicitly. Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
This commit is contained in:
parent
6f989433bc
commit
2740a436f6
5 changed files with 142 additions and 135 deletions
|
@ -57,26 +57,38 @@ rcl_get_zero_initialized_arguments(void);
|
||||||
|
|
||||||
/// Parse command line arguments into a structure usable by code.
|
/// Parse command line arguments into a structure usable by code.
|
||||||
/**
|
/**
|
||||||
* If an argument does not appear to be a valid ROS argument then it is skipped
|
|
||||||
* and parsing continues with the next argument in `argv`.
|
|
||||||
*
|
|
||||||
* \sa rcl_get_zero_initialized_arguments()
|
* \sa rcl_get_zero_initialized_arguments()
|
||||||
* \sa rcl_arguments_get_count_unparsed()
|
|
||||||
* \sa rcl_arguments_get_unparsed()
|
|
||||||
*
|
*
|
||||||
|
* ROS arguments are expected to be scoped by a leading `--ros-args` flag and a trailing double
|
||||||
|
* dash token `--` which may be elided if no non-ROS arguments follow after the last `--ros-args`.
|
||||||
|
*
|
||||||
|
* Remap rule parsing is supported via `-r/--remap` flags e.g. `--remap from:=to` or `-r from:=to`.
|
||||||
* Successfully parsed remap rules are stored in the order they were given in `argv`.
|
* Successfully parsed remap rules are stored in the order they were given in `argv`.
|
||||||
* If given arguments `{"__ns:=/foo", "__ns:=/bar"}` then the namespace used by nodes in this
|
* If given arguments `{"__ns:=/foo", "__ns:=/bar"}` then the namespace used by nodes in this
|
||||||
* process will be `/foo` and not `/bar`.
|
* process will be `/foo` and not `/bar`.
|
||||||
*
|
*
|
||||||
|
* \sa rcl_remap_topic_name()
|
||||||
|
* \sa rcl_remap_service_name()
|
||||||
|
* \sa rcl_remap_node_name()
|
||||||
|
* \sa rcl_remap_node_namespace()
|
||||||
|
*
|
||||||
|
* Parameter override rule parsing is supported via `-p/--param` flags e.g. `--param name:=value`
|
||||||
|
* or `-p name:=value`.
|
||||||
|
*
|
||||||
* The default log level will be parsed as `__log_level:=level`, where `level` is a name
|
* The default log level will be parsed as `__log_level:=level`, where `level` is a name
|
||||||
* representing one of the log levels in the `RCUTILS_LOG_SEVERITY` enum, e.g. `info`, `debug`,
|
* representing one of the log levels in the `RCUTILS_LOG_SEVERITY` enum, e.g. `info`, `debug`,
|
||||||
* `warn`, not case sensitive.
|
* `warn`, not case sensitive.
|
||||||
* If multiple of these rules are found, the last one parsed will be used.
|
* If multiple of these rules are found, the last one parsed will be used.
|
||||||
*
|
*
|
||||||
* \sa rcl_remap_topic_name()
|
* If an argument does not appear to be a known ROS argument, then it is skipped and left unparsed.
|
||||||
* \sa rcl_remap_service_name()
|
*
|
||||||
* \sa rcl_remap_node_name()
|
* \sa rcl_arguments_get_count_unparsed_ros()
|
||||||
* \sa rcl_remap_node_namespace()
|
* \sa rcl_arguments_get_unparsed_ros()
|
||||||
|
*
|
||||||
|
* All arguments found outside a `--ros-args ... --` scope are skipped and left unparsed.
|
||||||
|
*
|
||||||
|
* \sa rcl_arguments_get_count_unparsed()
|
||||||
|
* \sa rcl_arguments_get_unparsed()
|
||||||
*
|
*
|
||||||
* <hr>
|
* <hr>
|
||||||
* Attribute | Adherence
|
* Attribute | Adherence
|
||||||
|
|
|
@ -364,18 +364,6 @@ rcl_parse_arguments(
|
||||||
rcl_get_error_string().str);
|
rcl_get_error_string().str);
|
||||||
rcl_reset_error();
|
rcl_reset_error();
|
||||||
|
|
||||||
// Attempt to parse argument as remap rule
|
|
||||||
rcl_remap_t * rule = &(args_impl->remap_rules[args_impl->num_remap_rules]);
|
|
||||||
*rule = rcl_get_zero_initialized_remap();
|
|
||||||
if (RCL_RET_OK == _rcl_parse_remap_rule(argv[i], allocator, rule)) {
|
|
||||||
++(args_impl->num_remap_rules);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
RCUTILS_LOG_DEBUG_NAMED(ROS_PACKAGE_NAME,
|
|
||||||
"Couldn't parse arg %d (%s) as remap rule. Error: %s", i, argv[i],
|
|
||||||
rcl_get_error_string().str);
|
|
||||||
rcl_reset_error();
|
|
||||||
|
|
||||||
// Attempt to parse argument as log level configuration
|
// Attempt to parse argument as log level configuration
|
||||||
int log_level;
|
int log_level;
|
||||||
if (RCL_RET_OK == _rcl_parse_log_level_rule(argv[i], allocator, &log_level)) {
|
if (RCL_RET_OK == _rcl_parse_log_level_rule(argv[i], allocator, &log_level)) {
|
||||||
|
|
|
@ -104,8 +104,9 @@ public:
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
bool
|
bool
|
||||||
are_valid_ros_args(int argc, std::vector<const char *> argv)
|
are_known_ros_args(std::vector<const char *> argv)
|
||||||
{
|
{
|
||||||
|
const int argc = static_cast<int>(argv.size());
|
||||||
rcl_arguments_t parsed_args = rcl_get_zero_initialized_arguments();
|
rcl_arguments_t parsed_args = rcl_get_zero_initialized_arguments();
|
||||||
rcl_ret_t ret = rcl_parse_arguments(
|
rcl_ret_t ret = rcl_parse_arguments(
|
||||||
argc, argv.data(), rcl_get_default_allocator(), &parsed_args);
|
argc, argv.data(), rcl_get_default_allocator(), &parsed_args);
|
||||||
|
@ -117,74 +118,80 @@ are_valid_ros_args(int argc, std::vector<const char *> argv)
|
||||||
return is_valid;
|
return is_valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(CLASSNAME(TestArgumentsFixture, RMW_IMPLEMENTATION), check_valid_vs_invalid_args) {
|
TEST_F(CLASSNAME(TestArgumentsFixture, RMW_IMPLEMENTATION), check_known_vs_unknown_args) {
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "__node:=node_name"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "__node:=node_name"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "old_name:__node:=node_name"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "old_name:__node:=node_name"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "old_name:__node:=nodename123"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "old_name:__node:=nodename123"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "__node:=nodename123"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "__node:=nodename123"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "__ns:=/foo/bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "__ns:=/foo/bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "__ns:=/"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "__ns:=/"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "_:=kq"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "_:=kq"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "nodename:__ns:=/foobar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "nodename:__ns:=/foobar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "foo:=bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "foo:=bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "~/foo:=~/bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "~/foo:=~/bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "/foo/bar:=bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "/foo/bar:=bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "foo:=/bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "foo:=/bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "/foo123:=/bar123"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "/foo123:=/bar123"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "node:/foo123:=/bar123"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "node:/foo123:=/bar123"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "rostopic:=/foo/bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "rostopic:=/foo/bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "rosservice:=baz"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "rosservice:=baz"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "rostopic://rostopic:=rosservice"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "rostopic://rostopic:=rosservice"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "rostopic:///rosservice:=rostopic"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "rostopic:///rosservice:=rostopic"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-r", "rostopic:///foo/bar:=baz"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-r", "rostopic:///foo/bar:=baz"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-p", "foo:=bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-p", "foo:=bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-p", "~/foo:=~/bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-p", "~/foo:=~/bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-p", "/foo/bar:=bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-p", "/foo/bar:=bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-p", "foo:=/bar"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-p", "foo:=/bar"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(3, {"--ros-args", "-p", "/foo123:=/bar123"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "-p", "/foo123:=/bar123"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(2, {"--ros-args", "__params:=file_name.yaml"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "__params:=file_name.yaml"}));
|
||||||
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", ":="}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r"}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "foo:="}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "--remap"}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", ":=bar"}));
|
|
||||||
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-p", ":="}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", ":="}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-p", "foo:="}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "foo:="}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-p", ":=bar"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", ":=bar"}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "__ns:="}));
|
|
||||||
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "__node:="}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-p"}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "__node:=/foo/bar"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "--param"}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "__ns:=foo"}));
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", ":__node:=nodename"}));
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "~:__node:=nodename"}));
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "}foo:=/bar"}));
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "f oo:=/bar"}));
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "foo:=/b ar"}));
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "f{oo:=/bar"}));
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "foo:=/b}ar"}));
|
|
||||||
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-p", "}foo:=/bar"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-p", ":="}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-p", "f oo:=/bar"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-p", "foo:="}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-p", ":=bar"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "__ns:="}));
|
||||||
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "rostopic://:=rosservice"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "__node:="}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(3, {"--ros-args", "-r", "rostopic::=rosservice"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "__node:=/foo/bar"}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(2, {"--ros-args", "__param:=file_name.yaml"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "__ns:=foo"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", ":__node:=nodename"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "~:__node:=nodename"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "}foo:=/bar"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "f oo:=/bar"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "foo:=/b ar"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "f{oo:=/bar"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "foo:=/b}ar"}));
|
||||||
|
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-p", "}foo:=/bar"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-p", "f oo:=/bar"}));
|
||||||
|
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "rostopic://:=rosservice"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "-r", "rostopic::=rosservice"}));
|
||||||
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "__param:=file_name.yaml"}));
|
||||||
|
|
||||||
// Setting logger level
|
// Setting logger level
|
||||||
EXPECT_TRUE(are_valid_ros_args(2, {"--ros-args", "__log_level:=UNSET"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "__log_level:=UNSET"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(2, {"--ros-args", "__log_level:=DEBUG"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "__log_level:=DEBUG"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(2, {"--ros-args", "__log_level:=INFO"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "__log_level:=INFO"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(2, {"--ros-args", "__log_level:=WARN"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "__log_level:=WARN"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(2, {"--ros-args", "__log_level:=ERROR"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "__log_level:=ERROR"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(2, {"--ros-args", "__log_level:=FATAL"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "__log_level:=FATAL"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(2, {"--ros-args", "__log_level:=debug"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "__log_level:=debug"}));
|
||||||
EXPECT_TRUE(are_valid_ros_args(2, {"--ros-args", "__log_level:=Info"}));
|
EXPECT_TRUE(are_known_ros_args({"--ros-args", "__log_level:=Info"}));
|
||||||
|
|
||||||
EXPECT_FALSE(are_valid_ros_args(2, {"--ros-args", "__log:=foo"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "__log:=foo"}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(2, {"--ros-args", "__loglevel:=foo"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "__loglevel:=foo"}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(2, {"--ros-args", "__log_level:="}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "__log_level:="}));
|
||||||
EXPECT_FALSE(are_valid_ros_args(2, {"--ros-args", "__log_level:=foo"}));
|
EXPECT_FALSE(are_known_ros_args({"--ros-args", "__log_level:=foo"}));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(CLASSNAME(TestArgumentsFixture, RMW_IMPLEMENTATION), test_no_args) {
|
TEST_F(CLASSNAME(TestArgumentsFixture, RMW_IMPLEMENTATION), test_no_args) {
|
||||||
|
|
|
@ -42,7 +42,7 @@ public:
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_namespace_replacement) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_namespace_replacement) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "__ns:=/foo/bar");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "__ns:=/foo/bar");
|
||||||
|
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
ret = rcl_remap_node_namespace(
|
ret = rcl_remap_node_namespace(
|
||||||
|
@ -59,9 +59,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), nodename_prefix_namespac
|
||||||
global_arguments,
|
global_arguments,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"Node1:__ns:=/foo/bar",
|
"-r", "Node1:__ns:=/foo/bar",
|
||||||
"Node2:__ns:=/this_one",
|
"-r", "Node2:__ns:=/this_one",
|
||||||
"Node3:__ns:=/bar/foo");
|
"-r", "Node3:__ns:=/bar/foo");
|
||||||
|
|
||||||
{
|
{
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -104,9 +104,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), no_namespace_replacement
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), local_namespace_replacement_before_global) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), local_namespace_replacement_before_global) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "__ns:=/global_args");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "__ns:=/global_args");
|
||||||
rcl_arguments_t local_arguments;
|
rcl_arguments_t local_arguments;
|
||||||
SCOPE_ARGS(local_arguments, "process_name", "--ros-args", "__ns:=/local_args");
|
SCOPE_ARGS(local_arguments, "process_name", "--ros-args", "-r", "__ns:=/local_args");
|
||||||
|
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
ret = rcl_remap_node_namespace(
|
ret = rcl_remap_node_namespace(
|
||||||
|
@ -135,9 +135,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), other_rules_before_names
|
||||||
global_arguments,
|
global_arguments,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"/foobar:=/foo/bar",
|
"-r", "/foobar:=/foo/bar",
|
||||||
"__ns:=/namespace",
|
"-r", "__ns:=/namespace",
|
||||||
"__node:=new_name");
|
"-r", "__node:=new_name");
|
||||||
|
|
||||||
rcl_allocator_t allocator = rcl_get_default_allocator();
|
rcl_allocator_t allocator = rcl_get_default_allocator();
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -150,7 +150,7 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), other_rules_before_names
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_topic_name_replacement) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_topic_name_replacement) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "/bar/foo:=/foo/bar");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "/bar/foo:=/foo/bar");
|
||||||
|
|
||||||
{
|
{
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -172,7 +172,7 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_topic_name_replac
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), relative_topic_name_remap) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), relative_topic_name_remap) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "foo:=bar");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "foo:=bar");
|
||||||
|
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
ret = rcl_remap_topic_name(
|
ret = rcl_remap_topic_name(
|
||||||
|
@ -189,9 +189,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), nodename_prefix_topic_re
|
||||||
global_arguments,
|
global_arguments,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"Node1:/foo:=/foo/bar",
|
"-r", "Node1:/foo:=/foo/bar",
|
||||||
"Node2:/foo:=/this_one",
|
"-r", "Node2:/foo:=/this_one",
|
||||||
"Node3:/foo:=/bar/foo");
|
"-r", "Node3:/foo:=/bar/foo");
|
||||||
|
|
||||||
{
|
{
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -246,9 +246,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), no_topic_name_replacemen
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), local_topic_replacement_before_global) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), local_topic_replacement_before_global) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "/bar/foo:=/foo/global_args");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "/bar/foo:=/foo/global_args");
|
||||||
rcl_arguments_t local_arguments;
|
rcl_arguments_t local_arguments;
|
||||||
SCOPE_ARGS(local_arguments, "process_name", "--ros-args", "/bar/foo:=/foo/local_args");
|
SCOPE_ARGS(local_arguments, "process_name", "--ros-args", "-r", "/bar/foo:=/foo/local_args");
|
||||||
|
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
ret = rcl_remap_topic_name(
|
ret = rcl_remap_topic_name(
|
||||||
|
@ -266,9 +266,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), other_rules_before_topic
|
||||||
global_arguments,
|
global_arguments,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"__ns:=/namespace",
|
"-r", "__ns:=/namespace",
|
||||||
"__node:=remap_name",
|
"-r", "__node:=remap_name",
|
||||||
"/foobar:=/foo/bar");
|
"-r", "/foobar:=/foo/bar");
|
||||||
|
|
||||||
rcl_allocator_t allocator = rcl_get_default_allocator();
|
rcl_allocator_t allocator = rcl_get_default_allocator();
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -282,7 +282,7 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), other_rules_before_topic
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_service_name_replacement) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_service_name_replacement) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "/bar/foo:=/foo/bar");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "/bar/foo:=/foo/bar");
|
||||||
|
|
||||||
{
|
{
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -304,7 +304,7 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_service_name_repl
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), relative_service_name_remap) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), relative_service_name_remap) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "foo:=bar");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "foo:=bar");
|
||||||
|
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
ret = rcl_remap_service_name(
|
ret = rcl_remap_service_name(
|
||||||
|
@ -321,9 +321,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), nodename_prefix_service_
|
||||||
global_arguments,
|
global_arguments,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"Node1:/foo:=/foo/bar",
|
"-r", "Node1:/foo:=/foo/bar",
|
||||||
"Node2:/foo:=/this_one",
|
"-r", "Node2:/foo:=/this_one",
|
||||||
"Node3:/foo:=/bar/foo");
|
"-r", "Node3:/foo:=/bar/foo");
|
||||||
|
|
||||||
{
|
{
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -379,9 +379,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), no_service_name_replacem
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), local_service_replacement_before_global) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), local_service_replacement_before_global) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "/bar/foo:=/foo/global_args");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "/bar/foo:=/foo/global_args");
|
||||||
rcl_arguments_t local_arguments;
|
rcl_arguments_t local_arguments;
|
||||||
SCOPE_ARGS(local_arguments, "process_name", "--ros-args", "/bar/foo:=/foo/local_args");
|
SCOPE_ARGS(local_arguments, "process_name", "--ros-args", "-r", "/bar/foo:=/foo/local_args");
|
||||||
|
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
ret = rcl_remap_service_name(
|
ret = rcl_remap_service_name(
|
||||||
|
@ -399,9 +399,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), other_rules_before_servi
|
||||||
global_arguments,
|
global_arguments,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"__ns:=/namespace",
|
"-r", "__ns:=/namespace",
|
||||||
"__node:=remap_name",
|
"-r", "__node:=remap_name",
|
||||||
"/foobar:=/foo/bar");
|
"-r", "/foobar:=/foo/bar");
|
||||||
|
|
||||||
rcl_allocator_t allocator = rcl_get_default_allocator();
|
rcl_allocator_t allocator = rcl_get_default_allocator();
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -415,7 +415,7 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), other_rules_before_servi
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_nodename_replacement) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), global_nodename_replacement) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "__node:=globalname");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "__node:=globalname");
|
||||||
|
|
||||||
rcl_allocator_t allocator = rcl_get_default_allocator();
|
rcl_allocator_t allocator = rcl_get_default_allocator();
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -440,9 +440,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), no_nodename_replacement)
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), local_nodename_replacement_before_global) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), local_nodename_replacement_before_global) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "__node:=global_name");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "__node:=global_name");
|
||||||
rcl_arguments_t local_arguments;
|
rcl_arguments_t local_arguments;
|
||||||
SCOPE_ARGS(local_arguments, "process_name", "--ros-args", "__node:=local_name");
|
SCOPE_ARGS(local_arguments, "process_name", "--ros-args", "-r", "__node:=local_name");
|
||||||
|
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
ret = rcl_remap_node_name(
|
ret = rcl_remap_node_name(
|
||||||
|
@ -471,8 +471,8 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), use_first_nodename_rule)
|
||||||
global_arguments,
|
global_arguments,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"__node:=firstname",
|
"-r", "__node:=firstname",
|
||||||
"__node:=secondname");
|
"-r", "__node:=secondname");
|
||||||
|
|
||||||
rcl_allocator_t allocator = rcl_get_default_allocator();
|
rcl_allocator_t allocator = rcl_get_default_allocator();
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -489,9 +489,9 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), other_rules_before_noden
|
||||||
global_arguments,
|
global_arguments,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"/foobar:=/foo",
|
"-r", "/foobar:=/foo",
|
||||||
"__ns:=/namespace",
|
"-r", "__ns:=/namespace",
|
||||||
"__node:=remap_name");
|
"-r", "__node:=remap_name");
|
||||||
|
|
||||||
rcl_allocator_t allocator = rcl_get_default_allocator();
|
rcl_allocator_t allocator = rcl_get_default_allocator();
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
|
@ -504,7 +504,7 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), other_rules_before_noden
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), url_scheme_rosservice) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), url_scheme_rosservice) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "rosservice://foo:=bar");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "rosservice://foo:=bar");
|
||||||
|
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
ret = rcl_remap_service_name(
|
ret = rcl_remap_service_name(
|
||||||
|
@ -522,7 +522,7 @@ TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), url_scheme_rosservice) {
|
||||||
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), url_scheme_rostopic) {
|
TEST_F(CLASSNAME(TestRemapFixture, RMW_IMPLEMENTATION), url_scheme_rostopic) {
|
||||||
rcl_ret_t ret;
|
rcl_ret_t ret;
|
||||||
rcl_arguments_t global_arguments;
|
rcl_arguments_t global_arguments;
|
||||||
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "rostopic://foo:=bar");
|
SCOPE_ARGS(global_arguments, "process_name", "--ros-args", "-r", "rostopic://foo:=bar");
|
||||||
|
|
||||||
char * output = NULL;
|
char * output = NULL;
|
||||||
ret = rcl_remap_topic_name(
|
ret = rcl_remap_topic_name(
|
||||||
|
|
|
@ -49,9 +49,9 @@ TEST_F(CLASSNAME(TestRemapIntegrationFixture, RMW_IMPLEMENTATION), remap_using_g
|
||||||
argc, argv,
|
argc, argv,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"__node:=new_name",
|
"-r", "__node:=new_name",
|
||||||
"__ns:=/new_ns",
|
"-r", "__ns:=/new_ns",
|
||||||
"/foo/bar:=/bar/foo");
|
"-r", "/foo/bar:=/bar/foo");
|
||||||
|
|
||||||
rcl_node_t node = rcl_get_zero_initialized_node();
|
rcl_node_t node = rcl_get_zero_initialized_node();
|
||||||
rcl_node_options_t default_options = rcl_node_get_default_options();
|
rcl_node_options_t default_options = rcl_node_get_default_options();
|
||||||
|
@ -120,9 +120,9 @@ TEST_F(CLASSNAME(TestRemapIntegrationFixture, RMW_IMPLEMENTATION), ignore_global
|
||||||
argc, argv,
|
argc, argv,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"__node:=new_name",
|
"-r", "__node:=new_name",
|
||||||
"__ns:=/new_ns",
|
"-r", "__ns:=/new_ns",
|
||||||
"/foo/bar:=/bar/foo");
|
"-r", "/foo/bar:=/bar/foo");
|
||||||
rcl_arguments_t local_arguments;
|
rcl_arguments_t local_arguments;
|
||||||
SCOPE_ARGS(local_arguments, "local_process_name");
|
SCOPE_ARGS(local_arguments, "local_process_name");
|
||||||
|
|
||||||
|
@ -193,17 +193,17 @@ TEST_F(CLASSNAME(TestRemapIntegrationFixture, RMW_IMPLEMENTATION), local_rules_b
|
||||||
argc, argv,
|
argc, argv,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"__node:=global_name",
|
"-r", "__node:=global_name",
|
||||||
"__ns:=/global_ns",
|
"-r", "__ns:=/global_ns",
|
||||||
"/foo/bar:=/bar/global");
|
"-r", "/foo/bar:=/bar/global");
|
||||||
rcl_arguments_t local_arguments;
|
rcl_arguments_t local_arguments;
|
||||||
SCOPE_ARGS(
|
SCOPE_ARGS(
|
||||||
local_arguments,
|
local_arguments,
|
||||||
"process_name",
|
"process_name",
|
||||||
"--ros-args",
|
"--ros-args",
|
||||||
"__node:=local_name",
|
"-r", "__node:=local_name",
|
||||||
"__ns:=/local_ns",
|
"-r", "__ns:=/local_ns",
|
||||||
"/foo/bar:=/bar/local");
|
"-r", "/foo/bar:=/bar/local");
|
||||||
|
|
||||||
rcl_node_t node = rcl_get_zero_initialized_node();
|
rcl_node_t node = rcl_get_zero_initialized_node();
|
||||||
rcl_node_options_t options = rcl_node_get_default_options();
|
rcl_node_options_t options = rcl_node_get_default_options();
|
||||||
|
@ -267,7 +267,7 @@ TEST_F(CLASSNAME(TestRemapIntegrationFixture, RMW_IMPLEMENTATION), local_rules_b
|
||||||
TEST_F(CLASSNAME(TestRemapIntegrationFixture, RMW_IMPLEMENTATION), remap_relative_topic) {
|
TEST_F(CLASSNAME(TestRemapIntegrationFixture, RMW_IMPLEMENTATION), remap_relative_topic) {
|
||||||
int argc;
|
int argc;
|
||||||
char ** argv;
|
char ** argv;
|
||||||
SCOPE_GLOBAL_ARGS(argc, argv, "process_name", "--ros-args", "/foo/bar:=remap/global");
|
SCOPE_GLOBAL_ARGS(argc, argv, "process_name", "--ros-args", "-r", "/foo/bar:=remap/global");
|
||||||
|
|
||||||
rcl_node_t node = rcl_get_zero_initialized_node();
|
rcl_node_t node = rcl_get_zero_initialized_node();
|
||||||
rcl_node_options_t default_options = rcl_node_get_default_options();
|
rcl_node_options_t default_options = rcl_node_get_default_options();
|
||||||
|
@ -322,7 +322,7 @@ TEST_F(CLASSNAME(TestRemapIntegrationFixture, RMW_IMPLEMENTATION), remap_using_n
|
||||||
int argc;
|
int argc;
|
||||||
char ** argv;
|
char ** argv;
|
||||||
SCOPE_GLOBAL_ARGS(
|
SCOPE_GLOBAL_ARGS(
|
||||||
argc, argv, "process_name", "--ros-args", "original_name:__ns:=/new_ns");
|
argc, argv, "process_name", "--ros-args", "-r", "original_name:__ns:=/new_ns");
|
||||||
|
|
||||||
rcl_node_t node = rcl_get_zero_initialized_node();
|
rcl_node_t node = rcl_get_zero_initialized_node();
|
||||||
rcl_node_options_t default_options = rcl_node_get_default_options();
|
rcl_node_options_t default_options = rcl_node_get_default_options();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue