@@ -258,7 +258,8 @@ class TestNode : public ::testing::Test
258
258
void createNodesWithParams ();
259
259
void addBinaryParam (
260
260
std::string param_node_name, std::string param_namespace,
261
- std::string param_name, bool default_value_set, bool default_param_value);
261
+ std::string param_name, bool default_value_set, bool default_param_value,
262
+ bool is_critical = true );
262
263
void resetBinaryParams ();
263
264
void verifyBinaryParams (bool param1_expected_value, bool param2_expected_value);
264
265
@@ -294,6 +295,7 @@ class TestNode : public ::testing::Test
294
295
std::string name;
295
296
bool default_value_set;
296
297
bool default_value;
298
+ bool is_critical;
297
299
} BinaryParam;
298
300
299
301
std::vector<BinaryParam> binary_params_{};
@@ -479,6 +481,13 @@ bool TestNode::createBinaryFilter(const std::string & global_frame, double flip_
479
481
std::string (FILTER_NAME) + " ." + param.namespace_ + " .default_state" ,
480
482
param.default_value ));
481
483
}
484
+ node_->declare_parameter (
485
+ std::string (FILTER_NAME) + " ." + param.namespace_ + " .is_critical" ,
486
+ rclcpp::ParameterValue (true ));
487
+ node_->set_parameter (
488
+ rclcpp::Parameter (
489
+ std::string (FILTER_NAME) + " ." + param.namespace_ + " .is_critical" ,
490
+ param.is_critical ));
482
491
}
483
492
484
493
binary_filter_ = std::make_shared<nav2_costmap_2d::BinaryFilter>();
@@ -878,17 +887,19 @@ void TestNode::reset()
878
887
* @param param_name
879
888
* @param default_value_set whether default value is set or not
880
889
* @param default_param_value default value of the param (ignored if default_value_set is false)
890
+ * @param is_critical Whether any fail on changing this should lead to an error
881
891
*/
882
892
void TestNode::addBinaryParam (
883
893
std::string param_node_name, std::string param_namespace, std::string param_name,
884
- bool default_value_set, bool default_param_value)
894
+ bool default_value_set, bool default_param_value, bool is_critical )
885
895
{
886
896
BinaryParam param;
887
897
param.namespace_ = param_namespace;
888
898
param.node_name = param_node_name;
889
899
param.name = param_name;
890
900
param.default_value_set = default_value_set;
891
901
param.default_value = default_param_value;
902
+ param.is_critical = is_critical;
892
903
binary_params_.push_back (param);
893
904
}
894
905
@@ -1003,7 +1014,7 @@ TEST_F(TestNode, testWrongBinaryParamNode)
1003
1014
publishMaps (nav2_costmap_2d::BINARY_FILTER, MASK_TOPIC, 0.0 , 1.0 );
1004
1015
1005
1016
// Set woring Param1 node name
1006
- addBinaryParam (" wrong_node_name" , PARAM_NAMESPACE_0, PARAM_NAME_0, true , true );
1017
+ addBinaryParam (" wrong_node_name" , PARAM_NAMESPACE_0, PARAM_NAME_0, true , true , false );
1007
1018
addBinaryParam (NODE_NAME_1, PARAM_NAMESPACE_1, PARAM_NAME_1, true , false );
1008
1019
createNodesWithParams ();
1009
1020
ASSERT_TRUE (createBinaryFilter (" map" , 10.0 ));
@@ -1025,7 +1036,7 @@ TEST_F(TestNode, testWrongBinaryParamName)
1025
1036
publishMaps (nav2_costmap_2d::BINARY_FILTER, MASK_TOPIC, 0.0 , 1.0 );
1026
1037
1027
1038
// Set wrong node name for first parameter
1028
- addBinaryParam (NODE_NAME_0, PARAM_NAMESPACE_0, " wrong_param_name" , true , true );
1039
+ addBinaryParam (NODE_NAME_0, PARAM_NAMESPACE_0, " wrong_param_name" , true , true , false );
1029
1040
addBinaryParam (NODE_NAME_1, PARAM_NAMESPACE_1, PARAM_NAME_1, true , false );
1030
1041
createNodesWithParams ();
1031
1042
ASSERT_TRUE (createBinaryFilter (" map" , 10.0 ));
0 commit comments