diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/CMakeLists.txt b/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/CMakeLists.txt
index b4a688d711221..b28e486c9be05 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/CMakeLists.txt
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/CMakeLists.txt
@@ -13,4 +13,14 @@ ament_auto_add_library(${PROJECT_NAME} SHARED
src/util.cpp
)
+if(BUILD_TESTING)
+ find_package(ament_lint_auto REQUIRED)
+ ament_lint_auto_find_test_dependencies()
+ file(GLOB_RECURSE TEST_SOURCES test/*.cpp)
+ ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
+ ${TEST_SOURCES}
+ )
+ target_link_libraries(test_${PROJECT_NAME} ${PROJECT_NAME})
+endif()
+
ament_auto_package(INSTALL_TO_SHARE config)
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/package.xml
index 9739370387df7..8c34678f439ed 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/package.xml
@@ -17,6 +17,7 @@
ament_cmake_auto
autoware_cmake
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_behavior_velocity_rtc_interface
autoware_lanelet2_extension
@@ -32,6 +33,7 @@
tier4_planning_msgs
visualization_msgs
+ ament_cmake_ros
ament_lint_auto
autoware_lint_common
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..e0ceca4e12951
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/test/test_node_interface.cpp
@@ -0,0 +1,64 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "blind_spot", "autoware::behavior_velocity_planner::BlindSpotModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/CMakeLists.txt b/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/CMakeLists.txt
index 10b694ce22cbd..3a429008c1b8e 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/CMakeLists.txt
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/CMakeLists.txt
@@ -15,6 +15,7 @@ if(BUILD_TESTING)
ament_lint_auto_find_test_dependencies()
ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
test/test_crosswalk.cpp
+ test/test_node_interface.cpp
)
target_link_libraries(test_${PROJECT_NAME} ${PROJECT_NAME})
endif()
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/package.xml
index ff01e85aa5456..1f0e9e68a65c6 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/package.xml
@@ -21,6 +21,7 @@
autoware_cmake
eigen3_cmake_module
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_behavior_velocity_rtc_interface
autoware_grid_map_utils
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..7a875327d4dde
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/test/test_node_interface.cpp
@@ -0,0 +1,64 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "crosswalk", "autoware::behavior_velocity_planner::CrosswalkModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/CMakeLists.txt b/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/CMakeLists.txt
index 3aff4a524ffdd..53eafaffbba6c 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/CMakeLists.txt
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/CMakeLists.txt
@@ -14,6 +14,7 @@ if(BUILD_TESTING)
ament_lint_auto_find_test_dependencies()
ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
test/test_utils.cpp
+ test/test_node_interface.cpp
)
target_link_libraries(test_${PROJECT_NAME} ${PROJECT_NAME})
endif()
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/package.xml
index ff91cf40a32a6..4ae1d20991078 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/package.xml
@@ -17,6 +17,7 @@
autoware_cmake
eigen3_cmake_module
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_lanelet2_extension
autoware_motion_utils
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..f84d22debea8e
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/test/test_node_interface.cpp
@@ -0,0 +1,64 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "detection_area", "autoware::behavior_velocity_planner::DetectionAreaModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/package.xml
index 208e7ed49de71..4f7c3aeea7618 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/package.xml
@@ -19,6 +19,7 @@
ament_cmake_auto
autoware_cmake
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_behavior_velocity_rtc_interface
autoware_internal_debug_msgs
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..b515107e0ae8e
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/test/test_node_interface.cpp
@@ -0,0 +1,64 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "intersection", "autoware::behavior_velocity_planner::IntersectionModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/CMakeLists.txt b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/CMakeLists.txt
index b710924410549..e6b362271afb3 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/CMakeLists.txt
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/CMakeLists.txt
@@ -14,6 +14,7 @@ if(BUILD_TESTING)
ament_lint_auto_find_test_dependencies()
ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
test/test_utils.cpp
+ test/test_node_interface.cpp
)
target_link_libraries(test_${PROJECT_NAME} ${PROJECT_NAME})
endif()
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/package.xml
index 4415eadef62c7..28677bfb80b15 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/package.xml
@@ -17,6 +17,7 @@
ament_cmake_auto
autoware_cmake
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_behavior_velocity_rtc_interface
autoware_interpolation
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..875e757cbfcec
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/test/test_node_interface.cpp
@@ -0,0 +1,64 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "no_stopping_area", "autoware::behavior_velocity_planner::NoStoppingAreaModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/CMakeLists.txt b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/CMakeLists.txt
index 31900a23d00e5..a520b02a43c05 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/CMakeLists.txt
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/CMakeLists.txt
@@ -2,14 +2,6 @@ cmake_minimum_required(VERSION 3.14)
project(autoware_behavior_velocity_planner)
find_package(autoware_cmake REQUIRED)
-find_package(rosidl_default_generators REQUIRED)
-
-rosidl_generate_interfaces(
- ${PROJECT_NAME}
- "srv/LoadPlugin.srv"
- "srv/UnloadPlugin.srv"
- DEPENDENCIES
-)
autoware_package()
@@ -24,15 +16,6 @@ rclcpp_components_register_node(${PROJECT_NAME}_lib
EXECUTABLE ${PROJECT_NAME}_node
)
-if(${rosidl_cmake_VERSION} VERSION_LESS 2.5.0)
- rosidl_target_interfaces(${PROJECT_NAME}_lib
- ${PROJECT_NAME} "rosidl_typesupport_cpp")
-else()
- rosidl_get_typesupport_target(
- cpp_typesupport_target ${PROJECT_NAME} "rosidl_typesupport_cpp")
- target_link_libraries(${PROJECT_NAME}_lib "${cpp_typesupport_target}")
-endif()
-
if(BUILD_TESTING)
ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
test/test_node_interface.cpp
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/include/autoware/behavior_velocity_planner/node.hpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/include/autoware/behavior_velocity_planner/node.hpp
index 4c1f10c355226..8a52ae70231d0 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/include/autoware/behavior_velocity_planner/node.hpp
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/include/autoware/behavior_velocity_planner/node.hpp
@@ -21,10 +21,9 @@
#include
#include
-#include
-#include
#include
+#include
#include
#include
#include
@@ -45,8 +44,6 @@
namespace autoware::behavior_velocity_planner
{
-using autoware_behavior_velocity_planner::srv::LoadPlugin;
-using autoware_behavior_velocity_planner::srv::UnloadPlugin;
using autoware_map_msgs::msg::LaneletMapBin;
using tier4_planning_msgs::msg::VelocityLimit;
@@ -125,13 +122,14 @@ class BehaviorVelocityPlannerNode : public rclcpp::Node
BehaviorVelocityPlannerManager planner_manager_;
bool is_driving_forward_{true};
- rclcpp::Service::SharedPtr srv_load_plugin_;
- rclcpp::Service::SharedPtr srv_unload_plugin_;
+ rclcpp::Service::SharedPtr srv_load_plugin_;
+ rclcpp::Service::SharedPtr srv_unload_plugin_;
void onUnloadPlugin(
- const UnloadPlugin::Request::SharedPtr request,
- const UnloadPlugin::Response::SharedPtr response);
+ const autoware_internal_debug_msgs::srv::String::Request::SharedPtr request,
+ const autoware_internal_debug_msgs::srv::String::Response::SharedPtr response);
void onLoadPlugin(
- const LoadPlugin::Request::SharedPtr request, const LoadPlugin::Response::SharedPtr response);
+ const autoware_internal_debug_msgs::srv::String::Request::SharedPtr request,
+ const autoware_internal_debug_msgs::srv::String::Response::SharedPtr response);
// mutex for planner_data_
std::mutex mutex_;
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/package.xml
index 04b4cf0328fd1..eca49a09c8a56 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/package.xml
@@ -32,9 +32,8 @@
autoware_cmake
eigen3_cmake_module
- rosidl_default_generators
-
autoware_behavior_velocity_planner_common
+ autoware_internal_debug_msgs
autoware_lanelet2_extension
autoware_map_msgs
autoware_motion_utils
@@ -60,15 +59,11 @@
tier4_v2x_msgs
visualization_msgs
- rosidl_default_runtime
-
ament_cmake_ros
ament_lint_auto
autoware_lint_common
- rosidl_interface_packages
-
ament_cmake
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/src/node.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/src/node.cpp
index 5f78e4c670b49..1e3e691076b8a 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/src/node.cpp
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/src/node.cpp
@@ -70,9 +70,9 @@ BehaviorVelocityPlannerNode::BehaviorVelocityPlannerNode(const rclcpp::NodeOptio
this->create_subscription(
"~/input/path_with_lane_id", 1, std::bind(&BehaviorVelocityPlannerNode::onTrigger, this, _1));
- srv_load_plugin_ = create_service(
+ srv_load_plugin_ = create_service(
"~/service/load_plugin", std::bind(&BehaviorVelocityPlannerNode::onLoadPlugin, this, _1, _2));
- srv_unload_plugin_ = create_service(
+ srv_unload_plugin_ = create_service(
"~/service/unload_plugin",
std::bind(&BehaviorVelocityPlannerNode::onUnloadPlugin, this, _1, _2));
@@ -112,19 +112,19 @@ BehaviorVelocityPlannerNode::BehaviorVelocityPlannerNode(const rclcpp::NodeOptio
}
void BehaviorVelocityPlannerNode::onLoadPlugin(
- const LoadPlugin::Request::SharedPtr request,
- [[maybe_unused]] const LoadPlugin::Response::SharedPtr response)
+ const autoware_internal_debug_msgs::srv::String::Request::SharedPtr request,
+ [[maybe_unused]] const autoware_internal_debug_msgs::srv::String::Response::SharedPtr response)
{
std::unique_lock lk(mutex_);
- planner_manager_.launchScenePlugin(*this, request->plugin_name);
+ planner_manager_.launchScenePlugin(*this, request->data);
}
void BehaviorVelocityPlannerNode::onUnloadPlugin(
- const UnloadPlugin::Request::SharedPtr request,
- [[maybe_unused]] const UnloadPlugin::Response::SharedPtr response)
+ const autoware_internal_debug_msgs::srv::String::Request::SharedPtr request,
+ [[maybe_unused]] const autoware_internal_debug_msgs::srv::String::Response::SharedPtr response)
{
std::unique_lock lk(mutex_);
- planner_manager_.removeScenePlugin(*this, request->plugin_name);
+ planner_manager_.removeScenePlugin(*this, request->data);
}
void BehaviorVelocityPlannerNode::onParam()
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/srv/LoadPlugin.srv b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/srv/LoadPlugin.srv
deleted file mode 100644
index 7b9f08ab0ded8..0000000000000
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/srv/LoadPlugin.srv
+++ /dev/null
@@ -1,3 +0,0 @@
-string plugin_name
----
-bool success
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/srv/UnloadPlugin.srv b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/srv/UnloadPlugin.srv
deleted file mode 100644
index 7b9f08ab0ded8..0000000000000
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/srv/UnloadPlugin.srv
+++ /dev/null
@@ -1,3 +0,0 @@
-string plugin_name
----
-bool success
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/CMakeLists.txt b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/CMakeLists.txt
index da2f4ce33ff60..a2f35ada11b5e 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/CMakeLists.txt
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/CMakeLists.txt
@@ -17,10 +17,11 @@ ament_auto_add_library(${PROJECT_NAME} SHARED
if(BUILD_TESTING)
ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
- tests/test_dynamic_obstacle.cpp
- tests/test_path_utils.cpp
- tests/test_utils.cpp
- tests/test_state_machine.cpp
+ test/test_dynamic_obstacle.cpp
+ test/test_path_utils.cpp
+ test/test_utils.cpp
+ test/test_state_machine.cpp
+ test/test_node_interface.cpp
)
target_link_libraries(test_${PROJECT_NAME}
autoware_behavior_velocity_run_out_module
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/package.xml
index b3ced8b2e9b9f..18db8281356f8 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/package.xml
@@ -20,6 +20,7 @@
eigen3_cmake_module
autoware_behavior_velocity_crosswalk_module
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_internal_debug_msgs
autoware_motion_utils
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/tests/test_dynamic_obstacle.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_dynamic_obstacle.cpp
similarity index 100%
rename from planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/tests/test_dynamic_obstacle.cpp
rename to planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_dynamic_obstacle.cpp
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..75bf59751ed44
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_node_interface.cpp
@@ -0,0 +1,64 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "run_out", "autoware::behavior_velocity_planner::RunOutModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/tests/test_path_utils.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_path_utils.cpp
similarity index 100%
rename from planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/tests/test_path_utils.cpp
rename to planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_path_utils.cpp
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/tests/test_state_machine.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_state_machine.cpp
similarity index 100%
rename from planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/tests/test_state_machine.cpp
rename to planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_state_machine.cpp
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/tests/test_utils.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_utils.cpp
similarity index 100%
rename from planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/tests/test_utils.cpp
rename to planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/test/test_utils.cpp
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/CMakeLists.txt b/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/CMakeLists.txt
index f4528f0d13cf4..a187b4cda9459 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/CMakeLists.txt
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/CMakeLists.txt
@@ -14,6 +14,7 @@ ament_auto_add_library(${PROJECT_NAME} SHARED
if(BUILD_TESTING)
ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
test/test_scene.cpp
+ test/test_node_interface.cpp
)
target_link_libraries(test_${PROJECT_NAME}
gtest_main
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/package.xml
index fd4b9f83ae998..849ab3915c649 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/package.xml
@@ -20,6 +20,7 @@
autoware_cmake
eigen3_cmake_module
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_lanelet2_extension
autoware_motion_utils
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..c6d6ff638cfbb
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/test/test_node_interface.cpp
@@ -0,0 +1,64 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "stop_line", "autoware::behavior_velocity_planner::StopLineModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/CMakeLists.txt b/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/CMakeLists.txt
index 6370dd5e6c21d..02ed192459970 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/CMakeLists.txt
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/CMakeLists.txt
@@ -15,6 +15,7 @@ ament_auto_add_library(${PROJECT_NAME} SHARED
if(BUILD_TESTING)
ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
test/test_utils.cpp
+ test/test_node_interface.cpp
)
target_link_libraries(test_${PROJECT_NAME}
${PROJECT_NAME}
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/package.xml
index ebc45d372f92d..4bc7a15cddc48 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/package.xml
@@ -19,6 +19,7 @@
eigen3_cmake_module
autoware_adapi_v1_msgs
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_behavior_velocity_rtc_interface
autoware_lanelet2_extension
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..e24c2dab5dab9
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/test/test_node_interface.cpp
@@ -0,0 +1,64 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "traffic_light", "autoware::behavior_velocity_planner::TrafficLightModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/package.xml
index 6d3bc68242d7c..056f84a970c58 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/package.xml
@@ -18,6 +18,7 @@
autoware_cmake
autoware_adapi_v1_msgs
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_lanelet2_extension
autoware_motion_utils
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..9cb6bbfd40639
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/test/test_node_interface.cpp
@@ -0,0 +1,65 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "virtual_traffic_light",
+ "autoware::behavior_velocity_planner::VirtualTrafficLightModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/CMakeLists.txt b/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/CMakeLists.txt
index 11504d9c8999c..8b11fdce7283e 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/CMakeLists.txt
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/CMakeLists.txt
@@ -11,4 +11,14 @@ ament_auto_add_library(${PROJECT_NAME} SHARED
src/scene_walkway.cpp
)
+if(BUILD_TESTING)
+ find_package(ament_lint_auto REQUIRED)
+ ament_lint_auto_find_test_dependencies()
+ file(GLOB_RECURSE TEST_SOURCES test/*.cpp)
+ ament_add_ros_isolated_gtest(test_${PROJECT_NAME}
+ ${TEST_SOURCES}
+ )
+ target_link_libraries(test_${PROJECT_NAME} ${PROJECT_NAME})
+endif()
+
ament_auto_package(INSTALL_TO_SHARE config)
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/package.xml b/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/package.xml
index 5f1aea22855a4..857d9b524beb0 100644
--- a/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/package.xml
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/package.xml
@@ -18,6 +18,7 @@
autoware_cmake
autoware_behavior_velocity_crosswalk_module
+ autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_lanelet2_extension
autoware_motion_utils
@@ -31,6 +32,7 @@
rclcpp
visualization_msgs
+ ament_cmake_ros
ament_lint_auto
autoware_lint_common
diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/test/test_node_interface.cpp b/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/test/test_node_interface.cpp
new file mode 100644
index 0000000000000..e0b7fa5c31965
--- /dev/null
+++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/test/test_node_interface.cpp
@@ -0,0 +1,64 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+
+namespace autoware::behavior_velocity_planner
+{
+TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionPathWithLaneID)
+{
+ rclcpp::init(0, nullptr);
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode({});
+
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test with nominal path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ // test with empty path_with_lane_id
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithAbnormalPathWithLaneId(test_target_node));
+ rclcpp::shutdown();
+}
+
+TEST(PlanningModuleInterfaceTest, NodeTestWithOffTrackEgoPose)
+{
+ rclcpp::init(0, nullptr);
+
+ const auto plugin_info_vec = {autoware::behavior_velocity_planner::PluginInfo{
+ "walkway", "autoware::behavior_velocity_planner::WalkwayModulePlugin"}};
+
+ auto test_manager = autoware::behavior_velocity_planner::generateTestManager();
+ auto test_target_node = autoware::behavior_velocity_planner::generateNode(plugin_info_vec);
+ autoware::behavior_velocity_planner::publishMandatoryTopics(test_manager, test_target_node);
+
+ // test for normal trajectory
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testWithNominalPathWithLaneId(test_target_node));
+
+ // make sure behavior_path_planner is running
+ EXPECT_GE(test_manager->getReceivedTopicNum(), 1);
+
+ ASSERT_NO_THROW_WITH_ERROR_MSG(test_manager->testOffTrackFromPathWithLaneId(test_target_node));
+
+ rclcpp::shutdown();
+}
+} // namespace autoware::behavior_velocity_planner