@@ -127,11 +127,10 @@ def test_execute_advertised_action(self):
127127 )
128128 Thread (target = self .send_goal .send_action_goal , args = (goal_msg ,)).start ()
129129
130- loop_iterations = 0
130+ start_time = time . monotonic ()
131131 while self .received_message is None :
132- time .sleep (0.5 )
133- loop_iterations += 1
134- if loop_iterations > 5 :
132+ time .sleep (0.1 )
133+ if time .monotonic () - start_time > 1.0 :
135134 self .fail ("Timed out waiting for action goal message." )
136135
137136 self .assertIsNotNone (self .received_message )
@@ -164,14 +163,20 @@ def test_execute_advertised_action(self):
164163 )
165164 )
166165 self .feedback .action_feedback (feedback_msg )
167- loop_iterations = 0
168- while self .latest_feedback is None :
169- time .sleep (0.5 )
170- loop_iterations += 1
171- if loop_iterations > 5 :
166+
167+ start_time = time .monotonic ()
168+ while self .received_message is None :
169+ # self.executor.spin_once(timeout_sec=0.1)
170+ time .sleep (0.1 )
171+ if time .monotonic () - start_time > 1.0 :
172172 self .fail ("Timed out waiting for action feedback message." )
173173
174- self .assertIsNotNone (self .latest_feedback )
174+ start_time = time .monotonic ()
175+ while self .latest_feedback is None :
176+ time .sleep (0.1 )
177+ if time .monotonic () - start_time > 1.0 :
178+ self .fail ("Timed out waiting for action feedback callback." )
179+
175180 self .assertEqual (list (self .latest_feedback .feedback .sequence ), [0 , 1 , 1 ])
176181
177182 # Now send the result
@@ -190,11 +195,10 @@ def test_execute_advertised_action(self):
190195 self .received_message = None
191196 self .result .action_result (result_msg )
192197
193- loop_iterations = 0
198+ start_time = time . monotonic ()
194199 while self .received_message is None :
195- time .sleep (0.5 )
196- loop_iterations += 1
197- if loop_iterations > 5 :
200+ time .sleep (0.1 )
201+ if time .monotonic () - start_time > 1.0 :
198202 self .fail ("Timed out waiting for action result message." )
199203
200204 self .assertIsNotNone (self .received_message )
@@ -232,11 +236,10 @@ def test_cancel_advertised_action(self):
232236 )
233237 Thread (target = self .send_goal .send_action_goal , args = (goal_msg ,)).start ()
234238
235- loop_iterations = 0
239+ start_time = time . monotonic ()
236240 while self .received_message is None :
237- time .sleep (0.5 )
238- loop_iterations += 1
239- if loop_iterations > 5 :
241+ time .sleep (0.1 )
242+ if time .monotonic () - start_time > 1.0 :
240243 self .fail ("Timed out waiting for action goal message." )
241244
242245 self .assertIsNotNone (self .received_message )
@@ -257,12 +260,11 @@ def test_cancel_advertised_action(self):
257260 self .received_message = None
258261 self .send_goal .cancel_action_goal (cancel_msg )
259262
260- loop_iterations = 0
263+ start_time = time . monotonic ()
261264 while self .received_message is None :
262- time .sleep (0.5 )
263- loop_iterations += 1
264- if loop_iterations > 5 :
265- self .fail ("Timed out waiting for action result message." )
265+ time .sleep (0.1 )
266+ if time .monotonic () - start_time > 1.0 :
267+ self .fail ("Timed out waiting for cancel action message." )
266268
267269 self .assertIsNotNone (self .received_message )
268270 self .assertEqual (self .received_message ["op" ], "cancel_action_goal" )
@@ -283,11 +285,10 @@ def test_cancel_advertised_action(self):
283285 self .received_message = None
284286 self .result .action_result (result_msg )
285287
286- loop_iterations = 0
288+ start_time = time . monotonic ()
287289 while self .received_message is None :
288- time .sleep (0.5 )
289- loop_iterations += 1
290- if loop_iterations > 5 :
290+ time .sleep (0.1 )
291+ if time .monotonic () - start_time > 1.0 :
291292 self .fail ("Timed out waiting for action result message." )
292293
293294 self .assertIsNotNone (self .received_message )
@@ -326,11 +327,10 @@ def test_unadvertise_action(self):
326327 )
327328 Thread (target = self .send_goal .send_action_goal , args = (goal_msg ,)).start ()
328329
329- loop_iterations = 0
330+ start_time = time . monotonic ()
330331 while self .received_message is None :
331- time .sleep (0.5 )
332- loop_iterations += 1
333- if loop_iterations > 5 :
332+ time .sleep (0.1 )
333+ if time .monotonic () - start_time > 1.0 :
334334 self .fail ("Timed out waiting for action goal message." )
335335
336336 self .assertIsNotNone (self .received_message )
@@ -343,12 +343,10 @@ def test_unadvertise_action(self):
343343 self .received_message = None
344344 self .unadvertise .unadvertise_action (unadvertise_msg )
345345
346- loop_iterations = 0
346+ start_time = time . monotonic ()
347347 while self .received_message is None :
348- rclpy .spin_once (self .node , timeout_sec = 0.1 )
349- time .sleep (0.5 )
350- loop_iterations += 1
351- if loop_iterations > 5 :
348+ time .sleep (0.1 )
349+ if time .monotonic () - start_time > 1.0 :
352350 self .fail ("Timed out waiting for unadvertise action message." )
353351
354352
0 commit comments