23
23
#include < gtest/gtest.h>
24
24
25
25
#include < memory>
26
+ #include < string>
26
27
#include < vector>
27
28
28
29
using autoware::motion_planning::ObstacleStopPlannerNode;
@@ -32,9 +33,8 @@ using tier4_planning_msgs::msg::ExpandStopRange;
32
33
std::shared_ptr<PlanningInterfaceTestManager> generateTestManager ()
33
34
{
34
35
auto test_manager = std::make_shared<PlanningInterfaceTestManager>();
35
- test_manager->setTrajectorySubscriber (" obstacle_stop_planner/output/trajectory" );
36
- test_manager->setTrajectoryInputTopicName (" obstacle_stop_planner/input/trajectory" );
37
- test_manager->setOdometryTopicName (" obstacle_stop_planner/input/odometry" );
36
+ test_manager->subscribeOutput <autoware_planning_msgs::msg::Trajectory>(
37
+ " obstacle_stop_planner/output/trajectory" );
38
38
return test_manager;
39
39
}
40
40
@@ -65,21 +65,21 @@ void publishMandatoryTopics(
65
65
std::shared_ptr<ObstacleStopPlannerNode> test_target_node)
66
66
{
67
67
// publish necessary topics from test_manager
68
- test_manager->publishOdometry (test_target_node, " obstacle_stop_planner/input/odometry " );
69
- test_manager-> publishPointCloud ( test_target_node, " obstacle_stop_planner/input/pointcloud " );
70
- test_manager->publishAcceleration (test_target_node, " obstacle_stop_planner/input/acceleration " );
71
- test_manager-> publishPredictedObjects ( test_target_node, " obstacle_stop_planner/input/objects " );
72
- }
73
-
74
- void publishExpandStopRange (
75
- std::shared_ptr<PlanningInterfaceTestManager> test_manager ,
76
- std::shared_ptr<ObstacleStopPlannerNode> test_target_node)
77
- {
78
- auto test_node = test_manager-> getTestNode ();
79
- const auto expand_stop_range = test_manager-> getTestNode ()-> create_publisher <ExpandStopRange>(
80
- " obstacle_stop_planner/input/expand_stop_range " , 1 );
81
- expand_stop_range-> publish (ExpandStopRange{});
82
- autoware::test_utils::spinSomeNodes (test_node, test_target_node, 3 );
68
+ test_manager->publishInput (
69
+ test_target_node, " obstacle_stop_planner/input/odometry " , autoware::test_utils::makeOdometry () );
70
+ test_manager->publishInput (
71
+ test_target_node, " obstacle_stop_planner/input/pointcloud " ,
72
+ sensor_msgs::msg::PointCloud2{}. set__header (
73
+ std_msgs::msg::Header{}. set__frame_id ( " base_link " )));
74
+ test_manager-> publishInput (
75
+ test_target_node, " obstacle_stop_planner/input/acceleration " ,
76
+ geometry_msgs::msg::AccelWithCovarianceStamped{});
77
+ test_manager-> publishInput (
78
+ test_target_node, " obstacle_stop_planner/input/objects " ,
79
+ autoware_perception_msgs::msg::PredictedObjects{});
80
+ test_manager-> publishInput (
81
+ test_target_node, " obstacle_stop_planner/input/ expand_stop_range" ,
82
+ tier4_planning_msgs::msg::ExpandStopRange{} );
83
83
}
84
84
85
85
TEST (PlanningModuleInterfaceTest, NodeTestWithExceptionTrajectory)
@@ -90,15 +90,17 @@ TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionTrajectory)
90
90
auto test_target_node = generateNode ();
91
91
92
92
publishMandatoryTopics (test_manager, test_target_node);
93
- publishExpandStopRange (test_manager, test_target_node);
93
+
94
+ const std::string input_trajectory_topic = " obstacle_stop_planner/input/trajectory" ;
94
95
95
96
// test for normal trajectory
96
- ASSERT_NO_THROW_WITH_ERROR_MSG (test_manager->testWithNominalTrajectory (test_target_node));
97
+ ASSERT_NO_THROW_WITH_ERROR_MSG (
98
+ test_manager->testWithNormalTrajectory (test_target_node, input_trajectory_topic));
97
99
98
100
EXPECT_GE (test_manager->getReceivedTopicNum (), 1 );
99
101
100
102
// test for trajectory with empty/one point/overlapping point
101
- test_manager->testWithAbnormalTrajectory (test_target_node);
103
+ test_manager->testWithAbnormalTrajectory (test_target_node, input_trajectory_topic );
102
104
103
105
rclcpp::shutdown ();
104
106
}
@@ -110,14 +112,18 @@ TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
110
112
auto test_target_node = generateNode ();
111
113
112
114
publishMandatoryTopics (test_manager, test_target_node);
113
- publishExpandStopRange (test_manager, test_target_node);
115
+
116
+ const std::string input_trajectory_topic = " obstacle_stop_planner/input/trajectory" ;
117
+ const std::string input_odometry_topic = " obstacle_stop_planner/input/odometry" ;
114
118
115
119
// test for normal trajectory
116
- ASSERT_NO_THROW_WITH_ERROR_MSG (test_manager->testWithNominalTrajectory (test_target_node));
120
+ ASSERT_NO_THROW_WITH_ERROR_MSG (
121
+ test_manager->testWithNormalTrajectory (test_target_node, input_trajectory_topic));
117
122
EXPECT_GE (test_manager->getReceivedTopicNum (), 1 );
118
123
119
124
// test for trajectory with empty/one point/overlapping point
120
- ASSERT_NO_THROW_WITH_ERROR_MSG (test_manager->testTrajectoryWithInvalidEgoPose (test_target_node));
125
+ ASSERT_NO_THROW_WITH_ERROR_MSG (
126
+ test_manager->testWithOffTrackOdometry (test_target_node, input_odometry_topic));
121
127
122
128
rclcpp::shutdown ();
123
129
}
0 commit comments