18
18
#include < iostream>
19
19
#include < sstream>
20
20
#include < thread>
21
+ #include < string>
22
+ #include < set>
23
+ #include < utility>
21
24
22
25
#include " rcutils/types.h"
23
26
@@ -62,13 +65,16 @@ TEST_F(CLASSNAME(TestGetNodeNames, RMW_IMPLEMENTATION), test_rcl_get_node_names)
62
65
EXPECT_EQ (RCL_RET_OK, rcl_shutdown (&context)) << rcl_get_error_string ().str ;
63
66
EXPECT_EQ (RCL_RET_OK, rcl_context_fini (&context)) << rcl_get_error_string ().str ;
64
67
});
68
+ std::set<std::pair<std::string, std::string>> expected_nodes, discovered_nodes;
69
+
65
70
auto node1_ptr = new rcl_node_t ;
66
71
*node1_ptr = rcl_get_zero_initialized_node ();
67
72
const char * node1_name = " node1" ;
68
73
const char * node1_namespace = " /" ;
69
74
rcl_node_options_t node1_options = rcl_node_get_default_options ();
70
75
ret = rcl_node_init (node1_ptr, node1_name, node1_namespace, &context, &node1_options);
71
76
ASSERT_EQ (RCL_RET_OK, ret) << rcl_get_error_string ().str ;
77
+ expected_nodes.insert (std::make_pair (std::string (node1_name), std::string (node1_namespace)));
72
78
73
79
auto node2_ptr = new rcl_node_t ;
74
80
*node2_ptr = rcl_get_zero_initialized_node ();
@@ -77,6 +83,7 @@ TEST_F(CLASSNAME(TestGetNodeNames, RMW_IMPLEMENTATION), test_rcl_get_node_names)
77
83
rcl_node_options_t node2_options = rcl_node_get_default_options ();
78
84
ret = rcl_node_init (node2_ptr, node2_name, node2_namespace, &context, &node2_options);
79
85
ASSERT_EQ (RCL_RET_OK, ret) << rcl_get_error_string ().str ;
86
+ expected_nodes.insert (std::make_pair (std::string (node2_name), std::string (node2_namespace)));
80
87
81
88
auto node3_ptr = new rcl_node_t ;
82
89
*node3_ptr = rcl_get_zero_initialized_node ();
@@ -85,6 +92,7 @@ TEST_F(CLASSNAME(TestGetNodeNames, RMW_IMPLEMENTATION), test_rcl_get_node_names)
85
92
rcl_node_options_t node3_options = rcl_node_get_default_options ();
86
93
ret = rcl_node_init (node3_ptr, node3_name, node3_namespace, &context, &node3_options);
87
94
ASSERT_EQ (RCL_RET_OK, ret) << rcl_get_error_string ().str ;
95
+ expected_nodes.insert (std::make_pair (std::string (node3_name), std::string (node3_namespace)));
88
96
89
97
auto node4_ptr = new rcl_node_t ;
90
98
*node4_ptr = rcl_get_zero_initialized_node ();
@@ -93,6 +101,7 @@ TEST_F(CLASSNAME(TestGetNodeNames, RMW_IMPLEMENTATION), test_rcl_get_node_names)
93
101
rcl_node_options_t node4_options = rcl_node_get_default_options ();
94
102
ret = rcl_node_init (node4_ptr, node4_name, node4_namespace, &context, &node4_options);
95
103
ASSERT_EQ (RCL_RET_OK, ret) << rcl_get_error_string ().str ;
104
+ expected_nodes.insert (std::make_pair (std::string (node4_name), std::string (node4_namespace)));
96
105
97
106
std::this_thread::sleep_for (1s);
98
107
@@ -106,17 +115,13 @@ TEST_F(CLASSNAME(TestGetNodeNames, RMW_IMPLEMENTATION), test_rcl_get_node_names)
106
115
for (size_t i = 0 ; i < node_names.size ; ++i) {
107
116
ss << node_names.data [i] << std::endl;
108
117
}
109
- EXPECT_EQ (size_t (4 ), node_names.size ) << ss.str ();
110
- EXPECT_STREQ (node1_name, node_names.data [0 ]);
111
- EXPECT_STREQ (node2_name, node_names.data [1 ]);
112
- EXPECT_STREQ (node3_name, node_names.data [2 ]);
113
- EXPECT_STREQ (node4_name, node_names.data [3 ]);
114
-
115
- EXPECT_EQ (size_t (4 ), node_namespaces.size ) << ss.str ();
116
- EXPECT_STREQ (node1_namespace, node_namespaces.data [0 ]);
117
- EXPECT_STREQ (node2_namespace, node_namespaces.data [1 ]);
118
- EXPECT_STREQ (node3_namespace, node_namespaces.data [2 ]);
119
- EXPECT_STREQ (node4_namespace, node_namespaces.data [3 ]);
118
+ EXPECT_EQ (node_names.size , node_namespaces.size ) << ss.str ();
119
+
120
+ for (size_t i = 0 ; i < node_names.size ; ++i) {
121
+ discovered_nodes.insert (std::make_pair (std::string (node_names.data [i]),
122
+ std::string (node_namespaces.data [i])));
123
+ }
124
+ EXPECT_EQ (discovered_nodes, expected_nodes);
120
125
121
126
ret = rcutils_string_array_fini (&node_names);
122
127
ASSERT_EQ (RCUTILS_RET_OK, ret);
0 commit comments