@@ -699,7 +699,6 @@ TEST_F(TestNode, set_parameter_undeclared_parameters_not_allowed) {
699699 // setting a parameter with integer range descriptor
700700 auto name = " parameter" _unq;
701701 rcl_interfaces::msg::ParameterDescriptor descriptor;
702- descriptor.type = rclcpp::PARAMETER_INTEGER;
703702 descriptor.integer_range .resize (1 );
704703 auto & integer_range = descriptor.integer_range .at (0 );
705704 integer_range.from_value = 10 ;
@@ -726,7 +725,6 @@ TEST_F(TestNode, set_parameter_undeclared_parameters_not_allowed) {
726725 // setting a parameter with integer range descriptor and wrong default value will throw
727726 auto name = " parameter" _unq;
728727 rcl_interfaces::msg::ParameterDescriptor descriptor;
729- descriptor.type = rclcpp::PARAMETER_INTEGER;
730728 descriptor.integer_range .resize (1 );
731729 auto & integer_range = descriptor.integer_range .at (0 );
732730 integer_range.from_value = 10 ;
@@ -735,10 +733,9 @@ TEST_F(TestNode, set_parameter_undeclared_parameters_not_allowed) {
735733 ASSERT_THROW (node->declare_parameter (name, 42 , descriptor), rclcpp::exceptions::InvalidParameterValueException);
736734 }
737735 {
738- // setting a parameter with floatin point range descriptor
736+ // setting a parameter with floating point range descriptor
739737 auto name = " parameter" _unq;
740738 rcl_interfaces::msg::ParameterDescriptor descriptor;
741- descriptor.type = rclcpp::PARAMETER_DOUBLE;
742739 descriptor.floating_point_range .resize (1 );
743740 auto & floating_point_range = descriptor.floating_point_range .at (0 );
744741 floating_point_range.from_value = 10.0 ;
@@ -762,8 +759,8 @@ TEST_F(TestNode, set_parameter_undeclared_parameters_not_allowed) {
762759 EXPECT_EQ (node->get_parameter (name).get_value <double >(), 11.0 );
763760 }
764761 {
765- // setting a parameter with a different type will fail if
766- // it has a descriptor specifying a type
762+ // setting a parameter with a different type is still possible
763+ // when having a descriptor specifying a type (type is a status, not a constraint).
767764 auto name = " parameter" _unq;
768765 rcl_interfaces::msg::ParameterDescriptor descriptor;
769766 descriptor.type = rclcpp::PARAMETER_INTEGER;
@@ -773,12 +770,11 @@ TEST_F(TestNode, set_parameter_undeclared_parameters_not_allowed) {
773770 EXPECT_EQ (value.get_type (), rclcpp::PARAMETER_INTEGER);
774771 EXPECT_EQ (value.get_value <int64_t >(), 42 );
775772
776- EXPECT_FALSE (node->set_parameter (rclcpp::Parameter (name, " asd" )).successful );
777-
773+ EXPECT_TRUE (node->set_parameter (rclcpp::Parameter (name, " asd" )).successful );
778774 EXPECT_TRUE (node->has_parameter (name));
779775 value = node->get_parameter (name);
780- EXPECT_EQ (value.get_type (), rclcpp::PARAMETER_INTEGER );
781- EXPECT_EQ (value.get_value <int64_t >(), 42 );
776+ EXPECT_EQ (value.get_type (), rclcpp::PARAMETER_STRING );
777+ EXPECT_EQ (value.get_value <std::string >(), " asd " );
782778 }
783779}
784780
0 commit comments