Skip to content

Commit 6361d08

Browse files
committed
Decouple rosout publisher fini from node fini.
Signed-off-by: Tomoya Fujita <[email protected]>
1 parent 87c7dea commit 6361d08

24 files changed

+127
-1
lines changed

rclc/include/rclc/node.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ extern "C"
2222
{
2323
#endif
2424
#include <rcl/node.h>
25+
#include <rcl/logging.h>
26+
#include <rcl/logging_rosout.h>
2527
#include <rclc/types.h>
2628

2729
#include <rclc/init.h>

rclc/test/rclc/test_action_client.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ TEST(Test, rclc_action_client) {
127127
// clean up
128128
rc = rclc_action_client_fini(&action_client, &node);
129129
EXPECT_EQ(RCL_RET_OK, rc);
130+
if (rcl_logging_rosout_enabled()) {
131+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
132+
EXPECT_EQ(RCL_RET_OK, rc);
133+
}
130134
rc = rcl_node_fini(&node);
131135
EXPECT_EQ(RCL_RET_OK, rc);
132136
rc = rclc_support_fini(&support);
@@ -245,6 +249,10 @@ class ActionClientTest : public ::testing::Test
245249

246250
rc = rclc_action_client_fini(&action_client, &node);
247251
EXPECT_EQ(RCL_RET_OK, rc);
252+
if (rcl_logging_rosout_enabled()) {
253+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
254+
EXPECT_EQ(RCL_RET_OK, rc);
255+
}
248256
rc = rcl_node_fini(&node);
249257
EXPECT_EQ(RCL_RET_OK, rc);
250258
rc = rclc_support_fini(&support);

rclc/test/rclc/test_action_server.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ TEST(Test, rclc_action_server) {
140140
// clean up
141141
rc = rclc_action_server_fini(&action_server, &node);
142142
EXPECT_EQ(RCL_RET_OK, rc);
143+
if (rcl_logging_rosout_enabled()) {
144+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
145+
EXPECT_EQ(RCL_RET_OK, rc);
146+
}
143147
rc = rcl_node_fini(&node);
144148
EXPECT_EQ(RCL_RET_OK, rc);
145149
rc = rclc_support_fini(&support);
@@ -222,6 +226,10 @@ class ActionServerTest : public ::testing::Test
222226

223227
rc = rclc_action_server_fini(&action_server, &node);
224228
EXPECT_EQ(RCL_RET_OK, rc);
229+
if (rcl_logging_rosout_enabled()) {
230+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
231+
EXPECT_EQ(RCL_RET_OK, rc);
232+
}
225233
rc = rcl_node_fini(&node);
226234
EXPECT_EQ(RCL_RET_OK, rc);
227235
rc = rclc_support_fini(&support);

rclc/test/rclc/test_client.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ TEST(Test, rclc_client_init_default) {
7070
// clean up
7171
rc = rcl_client_fini(&client, &node);
7272
EXPECT_EQ(RCL_RET_OK, rc);
73+
if (rcl_logging_rosout_enabled()) {
74+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
75+
EXPECT_EQ(RCL_RET_OK, rc);
76+
}
7377
rc = rcl_node_fini(&node);
7478
EXPECT_EQ(RCL_RET_OK, rc);
7579
rc = rclc_support_fini(&support);
@@ -133,6 +137,10 @@ TEST(Test, rclc_client_init_best_effort) {
133137
// clean up
134138
rc = rcl_client_fini(&client, &node);
135139
EXPECT_EQ(RCL_RET_OK, rc);
140+
if (rcl_logging_rosout_enabled()) {
141+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
142+
EXPECT_EQ(RCL_RET_OK, rc);
143+
}
136144
rc = rcl_node_fini(&node);
137145
EXPECT_EQ(RCL_RET_OK, rc);
138146
rc = rclc_support_fini(&support);
@@ -200,6 +208,10 @@ TEST(Test, rclc_client_init_qos) {
200208
// clean up
201209
rc = rcl_client_fini(&client, &node);
202210
EXPECT_EQ(RCL_RET_OK, rc);
211+
if (rcl_logging_rosout_enabled()) {
212+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
213+
EXPECT_EQ(RCL_RET_OK, rc);
214+
}
203215
rc = rcl_node_fini(&node);
204216
EXPECT_EQ(RCL_RET_OK, rc);
205217
rc = rclc_support_fini(&support);

rclc/test/rclc/test_executor.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,6 +597,14 @@ class TestDefaultExecutor : public ::testing::Test
597597
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
598598
ret = rcl_clock_fini(&this->clock);
599599
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
600+
if (rcl_logging_rosout_enabled()) {
601+
ret = rcl_logging_rosout_fini_publisher_for_node(&this->node);
602+
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
603+
}
604+
if (rcl_logging_rosout_enabled()) {
605+
ret = rcl_logging_rosout_fini_publisher_for_node(&this->node);
606+
EXPECT_EQ(RCL_RET_OK, ret);
607+
}
600608
ret = rcl_node_fini(&this->node);
601609
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str;
602610
ret = rcl_shutdown(&this->context);

rclc/test/rclc/test_node.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ TEST(Test, rclc_node_init_default) {
3838
rcutils_reset_error();
3939

4040
// test case: null pointer for name
41+
if (rcl_logging_rosout_enabled()) {
42+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
43+
EXPECT_EQ(RCL_RET_OK, rc);
44+
}
4145
rc = rcl_node_fini(&node);
4246
EXPECT_EQ(RCL_RET_OK, rc);
4347

@@ -56,6 +60,10 @@ TEST(Test, rclc_node_init_default) {
5660
rcutils_reset_error();
5761

5862
// clean up
63+
if (rcl_logging_rosout_enabled()) {
64+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
65+
EXPECT_EQ(RCL_RET_OK, rc);
66+
}
5967
rc = rcl_node_fini(&node);
6068
EXPECT_EQ(RCL_RET_OK, rc);
6169
rcutils_reset_error();
@@ -106,6 +114,10 @@ TEST(Test, rclc_node_init_with_options) {
106114
EXPECT_EQ(RCL_RET_OK, rc);
107115

108116
// clean up
117+
if (rcl_logging_rosout_enabled()) {
118+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
119+
EXPECT_EQ(RCL_RET_OK, rc);
120+
}
109121
rc = rcl_node_fini(&node);
110122
EXPECT_EQ(RCL_RET_OK, rc);
111123
rcutils_reset_error();

rclc/test/rclc/test_publisher.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ TEST(Test, rclc_publisher_init_default) {
5454
// clean up
5555
rc = rcl_publisher_fini(&publisher, &node);
5656
EXPECT_EQ(RCL_RET_OK, rc);
57+
if (rcl_logging_rosout_enabled()) {
58+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
59+
EXPECT_EQ(RCL_RET_OK, rc);
60+
}
5761
rc = rcl_node_fini(&node);
5862
EXPECT_EQ(RCL_RET_OK, rc);
5963
rc = rclc_support_fini(&support);
@@ -99,6 +103,10 @@ TEST(Test, rclc_publisher_init_best_effort) {
99103
// clean up
100104
rc = rcl_publisher_fini(&publisher, &node);
101105
EXPECT_EQ(RCL_RET_OK, rc);
106+
if (rcl_logging_rosout_enabled()) {
107+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
108+
EXPECT_EQ(RCL_RET_OK, rc);
109+
}
102110
rc = rcl_node_fini(&node);
103111
EXPECT_EQ(RCL_RET_OK, rc);
104112
rc = rclc_support_fini(&support);
@@ -149,6 +157,10 @@ TEST(Test, rclc_publisher_init_qos) {
149157
// clean up
150158
rc = rcl_publisher_fini(&publisher, &node);
151159
EXPECT_EQ(RCL_RET_OK, rc);
160+
if (rcl_logging_rosout_enabled()) {
161+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
162+
EXPECT_EQ(RCL_RET_OK, rc);
163+
}
152164
rc = rcl_node_fini(&node);
153165
EXPECT_EQ(RCL_RET_OK, rc);
154166
rc = rclc_support_fini(&support);

rclc/test/rclc/test_service.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ TEST(Test, rclc_service_init_default) {
6363
// clean up
6464
rc = rcl_service_fini(&service, &node);
6565
EXPECT_EQ(RCL_RET_OK, rc);
66+
if (rcl_logging_rosout_enabled()) {
67+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
68+
EXPECT_EQ(RCL_RET_OK, rc);
69+
}
6670
rc = rcl_node_fini(&node);
6771
EXPECT_EQ(RCL_RET_OK, rc);
6872
rc = rclc_support_fini(&support);
@@ -119,6 +123,10 @@ TEST(Test, rclc_service_init_best_effort) {
119123
// clean up
120124
rc = rcl_service_fini(&service, &node);
121125
EXPECT_EQ(RCL_RET_OK, rc);
126+
if (rcl_logging_rosout_enabled()) {
127+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
128+
EXPECT_EQ(RCL_RET_OK, rc);
129+
}
122130
rc = rcl_node_fini(&node);
123131
EXPECT_EQ(RCL_RET_OK, rc);
124132
rc = rclc_support_fini(&support);
@@ -178,6 +186,10 @@ TEST(Test, rclc_service_init_qos) {
178186
// clean up
179187
rc = rcl_service_fini(&service, &node);
180188
EXPECT_EQ(RCL_RET_OK, rc);
189+
if (rcl_logging_rosout_enabled()) {
190+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
191+
EXPECT_EQ(RCL_RET_OK, rc);
192+
}
181193
rc = rcl_node_fini(&node);
182194
EXPECT_EQ(RCL_RET_OK, rc);
183195
rc = rclc_support_fini(&support);

rclc/test/rclc/test_subscription.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ TEST(Test, rclc_subscription_init_default) {
5353
// clean up
5454
rc = rcl_subscription_fini(&subscription, &node);
5555
EXPECT_EQ(RCL_RET_OK, rc);
56+
if (rcl_logging_rosout_enabled()) {
57+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
58+
EXPECT_EQ(RCL_RET_OK, rc);
59+
}
5660
rc = rcl_node_fini(&node);
5761
EXPECT_EQ(RCL_RET_OK, rc);
5862
rc = rclc_support_fini(&support);
@@ -98,6 +102,10 @@ TEST(Test, rclc_subscription_init_best_effort) {
98102
// clean up
99103
rc = rcl_subscription_fini(&subscription, &node);
100104
EXPECT_EQ(RCL_RET_OK, rc);
105+
if (rcl_logging_rosout_enabled()) {
106+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
107+
EXPECT_EQ(RCL_RET_OK, rc);
108+
}
101109
rc = rcl_node_fini(&node);
102110
EXPECT_EQ(RCL_RET_OK, rc);
103111
rc = rclc_support_fini(&support);
@@ -146,6 +154,10 @@ TEST(Test, rclc_subscription_init_qos) {
146154
// clean up
147155
rc = rcl_subscription_fini(&subscription, &node);
148156
EXPECT_EQ(RCL_RET_OK, rc);
157+
if (rcl_logging_rosout_enabled()) {
158+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
159+
EXPECT_EQ(RCL_RET_OK, rc);
160+
}
149161
rc = rcl_node_fini(&node);
150162
EXPECT_EQ(RCL_RET_OK, rc);
151163
rc = rclc_support_fini(&support);

rclc/test/rclc/test_timer.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ TEST(Test, rclc_timer_init_default2) {
5252
// clean up
5353
rc = rcl_timer_fini(&timer);
5454
EXPECT_EQ(RCL_RET_OK, rc);
55+
if (rcl_logging_rosout_enabled()) {
56+
rc = rcl_logging_rosout_fini_publisher_for_node(&node);
57+
EXPECT_EQ(RCL_RET_OK, rc);
58+
}
5559
rc = rcl_node_fini(&node);
5660
EXPECT_EQ(RCL_RET_OK, rc);
5761
rc = rclc_support_fini(&support);

0 commit comments

Comments
 (0)