Skip to content

Commit 84c6fb1

Browse files
authored
Fujitatomoya/test append parameter override (#2896)
* add parameter_overrides_with_parameter test. Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com> * no need to template the function signature of append_parameter_override(). Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com> --------- Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
1 parent 448287b commit 84c6fb1

3 files changed

Lines changed: 22 additions & 3 deletions

File tree

rclcpp/include/rclcpp/node_options.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,6 @@ class NodeOptions
147147
}
148148

149149
/// Append a single parameter override, parameter idiom style.
150-
template<typename ParameterT>
151150
NodeOptions &
152151
append_parameter_override(const rclcpp::Parameter & param)
153152
{

rclcpp/test/rclcpp/node_interfaces/test_node_parameters.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ TEST_F(TestNodeParameters, list_parameters)
128128
list_result5.names.end());
129129
}
130130

131-
TEST_F(TestNodeParameters, parameter_overrides)
131+
TEST_F(TestNodeParameters, parameter_overrides_with_value)
132132
{
133133
rclcpp::NodeOptions node_options;
134134
node_options.automatically_declare_parameters_from_overrides(true);
@@ -146,6 +146,24 @@ TEST_F(TestNodeParameters, parameter_overrides)
146146
EXPECT_EQ(2u, parameter_overrides.size());
147147
}
148148

149+
TEST_F(TestNodeParameters, parameter_overrides_with_parameter)
150+
{
151+
rclcpp::NodeOptions node_options;
152+
node_options.automatically_declare_parameters_from_overrides(true);
153+
node_options.append_parameter_override(rclcpp::Parameter("param1", true));
154+
node_options.append_parameter_override(rclcpp::Parameter("param2", 42));
155+
156+
std::shared_ptr<rclcpp::Node> node2 = std::make_shared<rclcpp::Node>("node2", "ns", node_options);
157+
158+
auto * node_parameters_interface =
159+
dynamic_cast<rclcpp::node_interfaces::NodeParameters *>(
160+
node2->get_node_parameters_interface().get());
161+
ASSERT_NE(nullptr, node_parameters_interface);
162+
163+
const auto & parameter_overrides = node_parameters_interface->get_parameter_overrides();
164+
EXPECT_EQ(2u, parameter_overrides.size());
165+
}
166+
149167
TEST_F(TestNodeParameters, set_parameters) {
150168
rclcpp::NodeOptions node_options;
151169
node_options.allow_undeclared_parameters(true);

rclcpp/test/rclcpp/test_node_options.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,10 @@ TEST(TestNodeOptions, append_parameter_override) {
258258
auto options = rclcpp::NodeOptions().arguments(expected_args).use_global_arguments(false);
259259
rclcpp::Parameter parameter("some_parameter", 10);
260260
options.append_parameter_override("some_parameter", 10);
261-
EXPECT_EQ(1u, options.parameter_overrides().size());
261+
options.append_parameter_override(parameter);
262+
EXPECT_EQ(2u, options.parameter_overrides().size());
262263
EXPECT_EQ(std::string("some_parameter"), options.parameter_overrides()[0].get_name());
264+
EXPECT_EQ(std::string("some_parameter"), options.parameter_overrides()[1].get_name());
263265
}
264266

265267
TEST(TestNodeOptions, rcl_node_options_fini_error) {

0 commit comments

Comments
 (0)