From 4efcd330feb7223e08ec84e5b07be1ec6c426b0d Mon Sep 17 00:00:00 2001 From: Shane Loretz Date: Wed, 30 May 2018 15:09:30 -0700 Subject: [PATCH] Spin before checking if clock changed (#483) --- rclcpp/test/test_time_source.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rclcpp/test/test_time_source.cpp b/rclcpp/test/test_time_source.cpp index 28f675b..be84780 100644 --- a/rclcpp/test/test_time_source.cpp +++ b/rclcpp/test/test_time_source.cpp @@ -50,7 +50,6 @@ protected: rclcpp::Node::SharedPtr node; }; - TEST_F(TestTimeSource, detachUnattached) { rclcpp::TimeSource ts; @@ -344,16 +343,19 @@ TEST_F(TestTimeSource, parameter_activation) { for (auto & result : set_parameters_results) { EXPECT_TRUE(result.successful); } + // SyncParametersClient returns when parameters have been set on the node_parameters interface, + // but it doesn't mean the on_parameter_event subscription in TimeSource has been called. + // Spin some to handle that subscription. rclcpp::spin_some(node); EXPECT_TRUE(ros_clock->ros_time_is_active()); - set_parameters_results = parameters_client->set_parameters({ rclcpp::parameter::ParameterVariant("use_sim_time", rclcpp::parameter::PARAMETER_NOT_SET) }); for (auto & result : set_parameters_results) { EXPECT_TRUE(result.successful); } + rclcpp::spin_some(node); EXPECT_TRUE(ros_clock->ros_time_is_active()); set_parameters_results = parameters_client->set_parameters({ @@ -362,6 +364,7 @@ TEST_F(TestTimeSource, parameter_activation) { for (auto & result : set_parameters_results) { EXPECT_TRUE(result.successful); } + rclcpp::spin_some(node); EXPECT_FALSE(ros_clock->ros_time_is_active()); set_parameters_results = parameters_client->set_parameters({ @@ -370,5 +373,6 @@ TEST_F(TestTimeSource, parameter_activation) { for (auto & result : set_parameters_results) { EXPECT_TRUE(result.successful); } + rclcpp::spin_some(node); EXPECT_FALSE(ros_clock->ros_time_is_active()); }