diff --git a/nav2_system_tests/src/system/tester_node.py b/nav2_system_tests/src/system/tester_node.py index 901db89bf933c3952f38ce865a0c9a7fd7d3e3a9..6177f2e7cf0925111579a1d1809bf059239fd0b8 100755 --- a/nav2_system_tests/src/system/tester_node.py +++ b/nav2_system_tests/src/system/tester_node.py @@ -178,8 +178,8 @@ class NavTester(Node): req = ManageLifecycleNodes.Request() req.command = ManageLifecycleNodes.Request().SHUTDOWN future = mgr_client.call_async(req) - rclpy.spin_until_future_complete(self, future) try: + rclpy.spin_until_future_complete(self, future) future.result() except Exception as e: self.error_msg('Service call failed %r' % (e,)) @@ -191,8 +191,8 @@ class NavTester(Node): req = ManageLifecycleNodes.Request() req.command = ManageLifecycleNodes.Request().SHUTDOWN future = mgr_client.call_async(req) - rclpy.spin_until_future_complete(self, future) try: + rclpy.spin_until_future_complete(self, future) future.result() except Exception as e: self.error_msg('Service call failed %r' % (e,)) diff --git a/nav2_system_tests/src/waypoint_follower/tester.py b/nav2_system_tests/src/waypoint_follower/tester.py index 6edaffe78a3c428547442f222653eabba164ddf9..be11dd53b3338a1c437629003912f305f19c021a 100755 --- a/nav2_system_tests/src/waypoint_follower/tester.py +++ b/nav2_system_tests/src/waypoint_follower/tester.py @@ -84,8 +84,12 @@ class WaypointFollowerTest(Node): self.info_msg('Sending goal request...') send_goal_future = self.action_client.send_goal_async(action_request) - rclpy.spin_until_future_complete(self, send_goal_future) - goal_handle = send_goal_future.result() + try: + rclpy.spin_until_future_complete(self, send_goal_future) + goal_handle = send_goal_future.result() + except Exception as e: + self.error_msg('Service call failed %r' % (e,)) + if not goal_handle.accepted: self.error_msg('Goal rejected') return False @@ -94,9 +98,13 @@ class WaypointFollowerTest(Node): get_result_future = goal_handle.get_result_async() self.info_msg("Waiting for 'FollowWaypoints' action to complete") - rclpy.spin_until_future_complete(self, get_result_future) - status = get_result_future.result().status - result = get_result_future.result().result + try: + rclpy.spin_until_future_complete(self, get_result_future) + status = get_result_future.result().status + result = get_result_future.result().result + except Exception as e: + self.error_msg('Service call failed %r' % (e,)) + if status != GoalStatus.STATUS_SUCCEEDED: self.info_msg('Goal failed with status code: {0}'.format(status)) return False