Skip to content

Commit 80768ed

Browse files
authored
ComponentManager should just ignore unknown extra argument in the bas… (#2723)
Signed-off-by: Tomoya Fujita <[email protected]>
1 parent 9cabd69 commit 80768ed

File tree

2 files changed

+12
-16
lines changed

2 files changed

+12
-16
lines changed

rclcpp_components/src/component_manager.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,9 +223,6 @@ ComponentManager::create_node_options(const std::shared_ptr<LoadNode::Request> r
223223
"Extra component argument 'enable_logger_service' must be a boolean");
224224
}
225225
options.enable_logger_service(extra_argument.get_value<bool>());
226-
} else {
227-
throw ComponentManagerException("Extra component argument '" + extra_argument.get_name() +
228-
"' is not supported");
229226
}
230227
}
231228

rclcpp_components/test/test_component_manager_api.cpp

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ void test_components_api(bool use_dedicated_executor)
181181
}
182182

183183
{
184-
// invalid extra argument
184+
// invalid extra argument to be ignored
185185
auto request = std::make_shared<composition_interfaces::srv::LoadNode::Request>();
186186
request->package_name = "rclcpp_components";
187187
request->plugin_name = "test_rclcpp_components::TestComponentFoo";
@@ -193,11 +193,10 @@ void test_components_api(bool use_dedicated_executor)
193193
auto ret = exec->spin_until_future_complete(future, 5s); // Wait for the result.
194194
auto result = future.get();
195195
EXPECT_EQ(ret, rclcpp::FutureReturnCode::SUCCESS);
196-
EXPECT_EQ(result->success, false);
197-
EXPECT_EQ(result->error_message,
198-
"Extra component argument 'allow_undeclared_parameters' is not supported");
199-
EXPECT_EQ(result->full_node_name, "");
200-
EXPECT_EQ(result->unique_id, 0u);
196+
EXPECT_EQ(result->success, true);
197+
EXPECT_EQ(result->error_message, "");
198+
EXPECT_EQ(result->full_node_name, "/test_component_allow_undeclared_parameters");
199+
EXPECT_EQ(result->unique_id, 6u);
201200
}
202201

203202
std::array<std::string, 8u> valid_extra_arguments = {
@@ -229,7 +228,7 @@ void test_components_api(bool use_dedicated_executor)
229228
EXPECT_EQ(result->success, true);
230229
EXPECT_EQ(result->error_message, "");
231230
EXPECT_EQ(result->full_node_name, "/test_component_" + arg);
232-
EXPECT_EQ(result->unique_id, 6u + i);
231+
EXPECT_EQ(result->unique_id, 7u + i);
233232
}
234233

235234
{
@@ -279,16 +278,16 @@ void test_components_api(bool use_dedicated_executor)
279278
auto result_node_names = result->full_node_names;
280279
auto result_unique_ids = result->unique_ids;
281280

282-
EXPECT_EQ(result_node_names.size(), 5u + valid_extra_arguments.size());
281+
EXPECT_EQ(result_node_names.size(), 6u + valid_extra_arguments.size());
283282
EXPECT_EQ(result_node_names[0], "/test_component_foo");
284283
EXPECT_EQ(result_node_names[1], "/test_component_bar");
285284
EXPECT_EQ(result_node_names[2], "/test_component_baz");
286285
EXPECT_EQ(result_node_names[3], "/ns/test_component_bing");
287286
EXPECT_EQ(result_node_names[4], "/test_component_remap");
288287
for (size_t i = 0u; i < valid_extra_arguments.size(); ++i) {
289-
EXPECT_EQ(result_node_names[5u + i], "/test_component_" + valid_extra_arguments[i]);
288+
EXPECT_EQ(result_node_names[6u + i], "/test_component_" + valid_extra_arguments[i]);
290289
}
291-
EXPECT_EQ(result_unique_ids.size(), 5u + valid_extra_arguments.size());
290+
EXPECT_EQ(result_unique_ids.size(), 6u + valid_extra_arguments.size());
292291
for (size_t i = 0u; i < result_unique_ids.size(); ++i) {
293292
EXPECT_EQ(result_unique_ids[i], 1u + i);
294293
}
@@ -345,15 +344,15 @@ void test_components_api(bool use_dedicated_executor)
345344
auto result_node_names = result->full_node_names;
346345
auto result_unique_ids = result->unique_ids;
347346

348-
EXPECT_EQ(result_node_names.size(), 4u + valid_extra_arguments.size());
347+
EXPECT_EQ(result_node_names.size(), 5u + valid_extra_arguments.size());
349348
EXPECT_EQ(result_node_names[0], "/test_component_bar");
350349
EXPECT_EQ(result_node_names[1], "/test_component_baz");
351350
EXPECT_EQ(result_node_names[2], "/ns/test_component_bing");
352351
EXPECT_EQ(result_node_names[3], "/test_component_remap");
353352
for (size_t i = 0u; i < valid_extra_arguments.size(); ++i) {
354-
EXPECT_EQ(result_node_names[4u + i], "/test_component_" + valid_extra_arguments[i]);
353+
EXPECT_EQ(result_node_names[5u + i], "/test_component_" + valid_extra_arguments[i]);
355354
}
356-
EXPECT_EQ(result_unique_ids.size(), 4u + valid_extra_arguments.size());
355+
EXPECT_EQ(result_unique_ids.size(), 5u + valid_extra_arguments.size());
357356
for (size_t i = 0u; i < result_unique_ids.size(); ++i) {
358357
EXPECT_EQ(result_unique_ids[i], 2u + i);
359358
}

0 commit comments

Comments
 (0)