diff --git a/nav2_system_tests/src/waypoint_follower/tester.py b/nav2_system_tests/src/waypoint_follower/tester.py
index 3d2f14aea5b6443fccbbe2ed77f381be72ce2248..5a8c340cb76d71224d85b256909a43460a08d8c9 100755
--- a/nav2_system_tests/src/waypoint_follower/tester.py
+++ b/nav2_system_tests/src/waypoint_follower/tester.py
@@ -50,8 +50,8 @@ class WaypointFollowerTest(Node):
 
     def setInitialPose(self, pose):
         self.init_pose = PoseWithCovarianceStamped()
-        self.init_pose.pose.pose.position.x = -2.0
-        self.init_pose.pose.pose.position.y = -0.5
+        self.init_pose.pose.pose.position.x = pose[0]
+        self.init_pose.pose.pose.position.y = pose[1]
         self.init_pose.header.frame_id = 'map'
         self.publishInitialPose()
         time.sleep(5)
@@ -61,9 +61,7 @@ class WaypointFollowerTest(Node):
         self.initial_pose_received = True
 
     def setWaypoints(self, waypoints):
-        if not self.waypoints:
-            self.waypoints = []
-
+        self.waypoints = []
         for wp in waypoints:
             msg = PoseStamped()
             msg.header.frame_id = 'map'
@@ -125,6 +123,10 @@ class WaypointFollowerTest(Node):
 
     def shutdown(self):
         self.info_msg('Shutting down')
+
+        self.action_client.destroy()
+        self.info_msg('Destroyed FollowWaypoints action client')
+
         transition_service = 'lifecycle_manager_navigation/manage_nodes'
         mgr_client = self.create_client(ManageLifecycleNodes, transition_service)
         while not mgr_client.wait_for_service(timeout_sec=1.0):
@@ -137,7 +139,9 @@ class WaypointFollowerTest(Node):
             rclpy.spin_until_future_complete(self, future)
             future.result()
         except Exception as e:
-            self.error_msg('Service call failed %r' % (e,))
+            self.error_msg('%s service call failed %r' % (transition_service, e,))
+
+        self.info_msg('{} finished'.format(transition_service))
 
         transition_service = 'lifecycle_manager_localization/manage_nodes'
         mgr_client = self.create_client(ManageLifecycleNodes, transition_service)
@@ -151,7 +155,9 @@ class WaypointFollowerTest(Node):
             rclpy.spin_until_future_complete(self, future)
             future.result()
         except Exception as e:
-            self.error_msg('Service call failed %r' % (e,))
+            self.error_msg('%s service call failed %r' % (transition_service, e,))
+
+        self.info_msg('{} finished'.format(transition_service))
 
     def cancel_goal(self):
         cancel_future = self.goal_handle.cancel_goal_async()
diff --git a/nav2_util/test/test_node_utils.cpp b/nav2_util/test/test_node_utils.cpp
index d3b50b23ebb3bf8512240f838a32616262d0307a..7c4392716154aa4e34bc740d63f742f6181b2951 100644
--- a/nav2_util/test/test_node_utils.cpp
+++ b/nav2_util/test/test_node_utils.cpp
@@ -88,6 +88,7 @@ TEST(DeclareParameterIfNotDeclared, DeclareParameterIfNotDeclared)
 
 TEST(GetPluginTypeParam, GetPluginTypeParam)
 {
+  ::testing::FLAGS_gtest_death_test_style = "threadsafe";
   auto node = std::make_shared<rclcpp::Node>("test_node");
   node->declare_parameter("Foo.plugin", "bar");
   ASSERT_EQ(get_plugin_type_param(node, "Foo"), "bar");