From 19b844b577bfa6987912a1bbf9d63ae704d4adec Mon Sep 17 00:00:00 2001 From: Steve Macenski <stevenmacenski@gmail.com> Date: Fri, 14 Feb 2020 19:55:27 -0800 Subject: [PATCH] fixing nightly builds with exception handling (#1527) --- nav2_system_tests/src/system/tester_node.py | 4 ++-- .../src/waypoint_follower/tester.py | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/nav2_system_tests/src/system/tester_node.py b/nav2_system_tests/src/system/tester_node.py index 901db89b..6177f2e7 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 6edaffe7..be11dd53 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 -- GitLab