Add specific return code for non existent node (#492)
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
This commit is contained in:
parent
17598ff6e6
commit
fa20448730
4 changed files with 17 additions and 8 deletions
|
@ -77,6 +77,7 @@ typedef rmw_names_and_types_t rcl_names_and_types_t;
|
||||||
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
||||||
* \return `RCL_RET_NODE_INVALID_NAME` if the node name is invalid, or
|
* \return `RCL_RET_NODE_INVALID_NAME` if the node name is invalid, or
|
||||||
* \return `RCL_RET_NODE_INVALID_NAMESPACE` if the node namespace is invalid, or
|
* \return `RCL_RET_NODE_INVALID_NAMESPACE` if the node namespace is invalid, or
|
||||||
|
* \return `RCL_RET_NODE_NAME_NON_EXISTENT` if the node name wasn't found, or
|
||||||
* \return `RCL_RET_ERROR` if an unspecified error occurs.
|
* \return `RCL_RET_ERROR` if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
@ -126,6 +127,7 @@ rcl_get_publisher_names_and_types_by_node(
|
||||||
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
||||||
* \return `RCL_RET_NODE_INVALID_NAME` if the node name is invalid, or
|
* \return `RCL_RET_NODE_INVALID_NAME` if the node name is invalid, or
|
||||||
* \return `RCL_RET_NODE_INVALID_NAMESPACE` if the node namespace is invalid, or
|
* \return `RCL_RET_NODE_INVALID_NAMESPACE` if the node namespace is invalid, or
|
||||||
|
* \return `RCL_RET_NODE_NAME_NON_EXISTENT` if the node name wasn't found, or
|
||||||
* \return `RCL_RET_ERROR` if an unspecified error occurs.
|
* \return `RCL_RET_ERROR` if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
@ -174,6 +176,7 @@ rcl_get_subscriber_names_and_types_by_node(
|
||||||
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
||||||
* \return `RCL_RET_NODE_INVALID_NAME` if the node name is invalid, or
|
* \return `RCL_RET_NODE_INVALID_NAME` if the node name is invalid, or
|
||||||
* \return `RCL_RET_NODE_INVALID_NAMESPACE` if the node namespace is invalid, or
|
* \return `RCL_RET_NODE_INVALID_NAMESPACE` if the node namespace is invalid, or
|
||||||
|
* \return `RCL_RET_NODE_NAME_NON_EXISTENT` if the node name wasn't found, or
|
||||||
* \return `RCL_RET_ERROR` if an unspecified error occurs.
|
* \return `RCL_RET_ERROR` if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
@ -221,6 +224,7 @@ rcl_get_service_names_and_types_by_node(
|
||||||
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
* \return `RCL_RET_INVALID_ARGUMENT` if any arguments are invalid, or
|
||||||
* \return `RCL_RET_NODE_INVALID_NAME` if the node name is invalid, or
|
* \return `RCL_RET_NODE_INVALID_NAME` if the node name is invalid, or
|
||||||
* \return `RCL_RET_NODE_INVALID_NAMESPACE` if the node namespace is invalid, or
|
* \return `RCL_RET_NODE_INVALID_NAMESPACE` if the node namespace is invalid, or
|
||||||
|
* \return `RCL_RET_NODE_NAME_NON_EXISTENT` if the node name wasn't found, or
|
||||||
* \return `RCL_RET_ERROR` if an unspecified error occurs.
|
* \return `RCL_RET_ERROR` if an unspecified error occurs.
|
||||||
*/
|
*/
|
||||||
RCL_PUBLIC
|
RCL_PUBLIC
|
||||||
|
|
|
@ -52,6 +52,8 @@ typedef rmw_ret_t rcl_ret_t;
|
||||||
#define RCL_RET_NODE_INVALID 200
|
#define RCL_RET_NODE_INVALID 200
|
||||||
#define RCL_RET_NODE_INVALID_NAME 201
|
#define RCL_RET_NODE_INVALID_NAME 201
|
||||||
#define RCL_RET_NODE_INVALID_NAMESPACE 202
|
#define RCL_RET_NODE_INVALID_NAMESPACE 202
|
||||||
|
/// Failed to find node name
|
||||||
|
#define RCL_RET_NODE_NAME_NON_EXISTENT 203
|
||||||
|
|
||||||
// rcl publisher specific ret codes in 3XX
|
// rcl publisher specific ret codes in 3XX
|
||||||
/// Invalid rcl_publisher_t given return code.
|
/// Invalid rcl_publisher_t given return code.
|
||||||
|
|
|
@ -65,6 +65,8 @@ rcl_convert_rmw_ret_to_rcl_ret(rmw_ret_t rmw_ret)
|
||||||
return RCL_RET_BAD_ALLOC;
|
return RCL_RET_BAD_ALLOC;
|
||||||
case RMW_RET_UNSUPPORTED:
|
case RMW_RET_UNSUPPORTED:
|
||||||
return RCL_RET_UNSUPPORTED;
|
return RCL_RET_UNSUPPORTED;
|
||||||
|
case RMW_RET_NODE_NAME_NON_EXISTENT:
|
||||||
|
return RCL_RET_NODE_NAME_NON_EXISTENT;
|
||||||
default:
|
default:
|
||||||
return RCL_RET_ERROR;
|
return RCL_RET_ERROR;
|
||||||
}
|
}
|
||||||
|
|
|
@ -329,12 +329,12 @@ TEST_F(
|
||||||
// unknown node name
|
// unknown node name
|
||||||
ret = rcl_get_publisher_names_and_types_by_node(
|
ret = rcl_get_publisher_names_and_types_by_node(
|
||||||
this->node_ptr, &allocator, false, unknown_node_name, "", &nat);
|
this->node_ptr, &allocator, false, unknown_node_name, "", &nat);
|
||||||
EXPECT_EQ(RCL_RET_ERROR, ret) << rcl_get_error_string().str;
|
EXPECT_EQ(RCL_RET_NODE_NAME_NON_EXISTENT, ret) << rcl_get_error_string().str;
|
||||||
rcl_reset_error();
|
rcl_reset_error();
|
||||||
// unknown node namespace
|
// unknown node namespace
|
||||||
ret = rcl_get_publisher_names_and_types_by_node(
|
ret = rcl_get_publisher_names_and_types_by_node(
|
||||||
this->node_ptr, &allocator, false, this->test_graph_node_name, unknown_node_ns, &nat);
|
this->node_ptr, &allocator, false, this->test_graph_node_name, unknown_node_ns, &nat);
|
||||||
EXPECT_EQ(RCL_RET_ERROR, ret) << rcl_get_error_string().str;
|
EXPECT_EQ(RCL_RET_NODE_NAME_NON_EXISTENT, ret) << rcl_get_error_string().str;
|
||||||
rcl_reset_error();
|
rcl_reset_error();
|
||||||
// valid call
|
// valid call
|
||||||
ret = rcl_get_publisher_names_and_types_by_node(
|
ret = rcl_get_publisher_names_and_types_by_node(
|
||||||
|
@ -414,12 +414,12 @@ TEST_F(
|
||||||
// unknown node name
|
// unknown node name
|
||||||
ret = rcl_get_subscriber_names_and_types_by_node(
|
ret = rcl_get_subscriber_names_and_types_by_node(
|
||||||
this->node_ptr, &allocator, false, unknown_node_name, "", &nat);
|
this->node_ptr, &allocator, false, unknown_node_name, "", &nat);
|
||||||
EXPECT_EQ(RCL_RET_ERROR, ret) << rcl_get_error_string().str;
|
EXPECT_EQ(RCL_RET_NODE_NAME_NON_EXISTENT, ret) << rcl_get_error_string().str;
|
||||||
rcl_reset_error();
|
rcl_reset_error();
|
||||||
// unknown node namespace
|
// unknown node namespace
|
||||||
ret = rcl_get_subscriber_names_and_types_by_node(
|
ret = rcl_get_subscriber_names_and_types_by_node(
|
||||||
this->node_ptr, &allocator, false, this->test_graph_node_name, unknown_node_ns, &nat);
|
this->node_ptr, &allocator, false, this->test_graph_node_name, unknown_node_ns, &nat);
|
||||||
EXPECT_EQ(RCL_RET_ERROR, ret) << rcl_get_error_string().str;
|
EXPECT_EQ(RCL_RET_NODE_NAME_NON_EXISTENT, ret) << rcl_get_error_string().str;
|
||||||
rcl_reset_error();
|
rcl_reset_error();
|
||||||
// valid call
|
// valid call
|
||||||
ret = rcl_get_subscriber_names_and_types_by_node(
|
ret = rcl_get_subscriber_names_and_types_by_node(
|
||||||
|
@ -496,12 +496,12 @@ TEST_F(
|
||||||
// unknown node name
|
// unknown node name
|
||||||
ret = rcl_get_service_names_and_types_by_node(
|
ret = rcl_get_service_names_and_types_by_node(
|
||||||
this->node_ptr, &allocator, unknown_node_name, "", &nat);
|
this->node_ptr, &allocator, unknown_node_name, "", &nat);
|
||||||
EXPECT_EQ(RCL_RET_ERROR, ret) << rcl_get_error_string().str;
|
EXPECT_EQ(RCL_RET_NODE_NAME_NON_EXISTENT, ret) << rcl_get_error_string().str;
|
||||||
rcl_reset_error();
|
rcl_reset_error();
|
||||||
// unknown node namespace
|
// unknown node namespace
|
||||||
ret = rcl_get_service_names_and_types_by_node(
|
ret = rcl_get_service_names_and_types_by_node(
|
||||||
this->node_ptr, &allocator, this->test_graph_node_name, unknown_node_ns, &nat);
|
this->node_ptr, &allocator, this->test_graph_node_name, unknown_node_ns, &nat);
|
||||||
EXPECT_EQ(RCL_RET_ERROR, ret) << rcl_get_error_string().str;
|
EXPECT_EQ(RCL_RET_NODE_NAME_NON_EXISTENT, ret) << rcl_get_error_string().str;
|
||||||
rcl_reset_error();
|
rcl_reset_error();
|
||||||
// valid call
|
// valid call
|
||||||
ret = rcl_get_service_names_and_types_by_node(
|
ret = rcl_get_service_names_and_types_by_node(
|
||||||
|
@ -525,6 +525,7 @@ TEST_F(
|
||||||
rcl_node_t zero_node = rcl_get_zero_initialized_node();
|
rcl_node_t zero_node = rcl_get_zero_initialized_node();
|
||||||
const char * unknown_node_name = "test_rcl_get_client_names_and_types_by_node";
|
const char * unknown_node_name = "test_rcl_get_client_names_and_types_by_node";
|
||||||
const char * unknown_node_ns = "/test/namespace";
|
const char * unknown_node_ns = "/test/namespace";
|
||||||
|
|
||||||
rcl_names_and_types_t nat = rcl_get_zero_initialized_names_and_types();
|
rcl_names_and_types_t nat = rcl_get_zero_initialized_names_and_types();
|
||||||
// invalid node
|
// invalid node
|
||||||
ret = rcl_get_client_names_and_types_by_node(
|
ret = rcl_get_client_names_and_types_by_node(
|
||||||
|
@ -578,12 +579,12 @@ TEST_F(
|
||||||
// unknown node name
|
// unknown node name
|
||||||
ret = rcl_get_client_names_and_types_by_node(
|
ret = rcl_get_client_names_and_types_by_node(
|
||||||
this->node_ptr, &allocator, unknown_node_name, "", &nat);
|
this->node_ptr, &allocator, unknown_node_name, "", &nat);
|
||||||
EXPECT_EQ(RCL_RET_ERROR, ret) << rcl_get_error_string().str;
|
EXPECT_EQ(RCL_RET_NODE_NAME_NON_EXISTENT, ret) << rcl_get_error_string().str;
|
||||||
rcl_reset_error();
|
rcl_reset_error();
|
||||||
// unknown node namespace
|
// unknown node namespace
|
||||||
ret = rcl_get_client_names_and_types_by_node(
|
ret = rcl_get_client_names_and_types_by_node(
|
||||||
this->node_ptr, &allocator, this->test_graph_node_name, unknown_node_ns, &nat);
|
this->node_ptr, &allocator, this->test_graph_node_name, unknown_node_ns, &nat);
|
||||||
EXPECT_EQ(RCL_RET_ERROR, ret) << rcl_get_error_string().str;
|
EXPECT_EQ(RCL_RET_NODE_NAME_NON_EXISTENT, ret) << rcl_get_error_string().str;
|
||||||
rcl_reset_error();
|
rcl_reset_error();
|
||||||
// valid call
|
// valid call
|
||||||
ret = rcl_get_client_names_and_types_by_node(
|
ret = rcl_get_client_names_and_types_by_node(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue