diff --git a/rviz_common/src/rviz_common/ros_integration/ros_client_abstraction.cpp b/rviz_common/src/rviz_common/ros_integration/ros_client_abstraction.cpp index 97c3ba533..74e67a5ab 100644 --- a/rviz_common/src/rviz_common/ros_integration/ros_client_abstraction.cpp +++ b/rviz_common/src/rviz_common/ros_integration/ros_client_abstraction.cpp @@ -77,6 +77,10 @@ RosClientAbstraction::ok() void RosClientAbstraction::shutdown() { + // Destroy the node before shutting down the context it was created with, + // otherwise it is destroyed during static destruction at process exit, + // which aborts. + rviz_ros_node_.reset(); rclcpp::shutdown(); } diff --git a/rviz_default_plugins/CMakeLists.txt b/rviz_default_plugins/CMakeLists.txt index 58e508d6f..a2f14c42f 100644 --- a/rviz_default_plugins/CMakeLists.txt +++ b/rviz_default_plugins/CMakeLists.txt @@ -388,43 +388,6 @@ if(BUILD_TESTING) ogre_testing_environment ) - ament_add_gmock(fps_view_controller_test - test/rviz_default_plugins/view_controllers/fps/fps_view_controller_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET fps_view_controller_test) - target_include_directories(fps_view_controller_test PRIVATE ${TEST_INCLUDE_DIRS}) - target_link_libraries(fps_view_controller_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - Qt${QT_VERSION_MAJOR}::Widgets - ogre_testing_environment - ) - endif() - - ament_add_gmock(frame_view_controller_test - test/rviz_default_plugins/view_controllers/frame/frame_view_controller_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET frame_view_controller_test) - target_include_directories(frame_view_controller_test PRIVATE ${TEST_INCLUDE_DIRS}) - target_link_libraries(frame_view_controller_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - Qt${QT_VERSION_MAJOR}::Widgets - ogre_testing_environment - ) - endif() - - ament_add_gmock(frame_info_test - test/rviz_default_plugins/displays/tf/frame_info_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET frame_info_test) - target_include_directories(frame_info_test PRIVATE test) - target_link_libraries(frame_info_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - ament_add_gmock(get_transport_from_topic_test test/rviz_default_plugins/displays/image/get_transport_from_topic_test.cpp ${TEST_FIXTURE_OBJECTS}) @@ -433,27 +396,6 @@ if(BUILD_TESTING) target_link_libraries(get_transport_from_topic_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) endif() - ament_add_gmock(grid_cells_display_test - test/rviz_default_plugins/displays/grid_cells/grid_cells_display_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET grid_cells_display_test) - target_include_directories(grid_cells_display_test PRIVATE test) - target_link_libraries(grid_cells_display_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - - ament_add_gmock(image_display_test - test/rviz_default_plugins/displays/image/image_display_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET image_display_test) - target_include_directories(image_display_test PRIVATE test) - target_link_libraries(image_display_test - rviz_default_plugins - ogre_testing_environment - ) - endif() - add_library(marker_messages STATIC test/rviz_default_plugins/displays/marker/marker_messages.cpp) target_link_libraries(marker_messages PRIVATE geometry_msgs::geometry_msgs @@ -462,7 +404,19 @@ if(BUILD_TESTING) rviz_ogre_vendor::OgreMain ) - ament_add_gmock(marker_test + add_library(pointcloud_messages STATIC test/rviz_default_plugins/pointcloud_messages.cpp) + target_link_libraries(pointcloud_messages PRIVATE + sensor_msgs::sensor_msgs + rclcpp::rclcpp + ) + + ament_add_gmock(rviz_default_plugins_display_tests + test/rviz_default_plugins/display_tests_main.cpp + test/rviz_default_plugins/view_controllers/fps/fps_view_controller_test.cpp + test/rviz_default_plugins/view_controllers/frame/frame_view_controller_test.cpp + test/rviz_default_plugins/displays/tf/frame_info_test.cpp + test/rviz_default_plugins/displays/grid_cells/grid_cells_display_test.cpp + test/rviz_default_plugins/displays/image/image_display_test.cpp test/rviz_default_plugins/displays/marker/markers/arrow_marker_test.cpp test/rviz_default_plugins/displays/marker/markers/line_marker_test.cpp test/rviz_default_plugins/displays/marker/markers/mesh_resource_marker_test.cpp @@ -471,277 +425,48 @@ if(BUILD_TESTING) test/rviz_default_plugins/displays/marker/markers/text_view_facing_marker_test.cpp test/rviz_default_plugins/displays/marker/markers/triangle_list_marker_test.cpp test/rviz_default_plugins/displays/marker/markers/markers_test_fixture.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET marker_test) - target_include_directories(marker_test PRIVATE test) - target_link_libraries(marker_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - marker_messages - visualization_msgs::visualization_msgs - ogre_testing_environment - ) - endif() - - ament_add_gmock(marker_common_test test/rviz_default_plugins/displays/marker/marker_common_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET marker_common_test) - target_include_directories(marker_common_test PRIVATE test) - target_link_libraries(marker_common_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - visualization_msgs::visualization_msgs - rviz_default_plugins - marker_messages - ogre_testing_environment - ) - endif() - - ament_add_gmock(map_display_test - ${TEST_FIXTURE_OBJECTS} test/rviz_default_plugins/displays/map/map_display_test.cpp - ${SKIP_DISPLAY_TESTS}) - if(TARGET map_display_test) - target_include_directories(map_display_test PRIVATE test) - target_link_libraries(map_display_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - - ament_add_gmock(measure_tool_test test/rviz_default_plugins/tools/measure/measure_tool_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET measure_tool_test) - target_include_directories(measure_tool_test PRIVATE test) - target_link_libraries(measure_tool_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - - ament_add_gmock(odometry_display_test test/rviz_default_plugins/displays/odometry/odometry_display_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET odometry_display_test) - target_include_directories(odometry_display_test PRIVATE test) - target_link_libraries(odometry_display_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - - ament_add_gmock(odometry_ogre_helper_test test/rviz_default_plugins/displays/odometry/quaternion_helper_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET odometry_ogre_helper_test) - target_include_directories(odometry_ogre_helper_test PRIVATE test) - target_link_libraries(odometry_ogre_helper_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} ogre_testing_environment) - endif() - - ament_add_gmock(orbit_view_controller_test test/rviz_default_plugins/view_controllers/orbit/orbit_view_controller_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET orbit_view_controller_test) - target_include_directories(orbit_view_controller_test PRIVATE test) - target_link_libraries(orbit_view_controller_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - Qt${QT_VERSION_MAJOR}::Widgets - rviz_default_plugins - ogre_testing_environment - ) - endif() - - ament_add_gmock(ortho_view_controller_test test/rviz_default_plugins/view_controllers/ortho/ortho_view_controller_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET ortho_view_controller_test) - target_include_directories(ortho_view_controller_test PRIVATE test) - target_link_libraries(ortho_view_controller_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - ) - endif() - - ament_add_gmock(palette_builder_test test/rviz_default_plugins/displays/map/palette_builder_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET palette_builder_test) - target_include_directories(palette_builder_test PRIVATE test) - target_link_libraries(palette_builder_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - - ament_add_gmock(path_display_test test/rviz_default_plugins/displays/path/path_display_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET path_display_test) - target_include_directories(path_display_test PRIVATE test) - target_link_libraries(path_display_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - visualization_msgs::visualization_msgs - rviz_default_plugins - ogre_testing_environment - ) - endif() - - add_library(pointcloud_messages STATIC test/rviz_default_plugins/pointcloud_messages.cpp) - target_link_libraries(pointcloud_messages PRIVATE - sensor_msgs::sensor_msgs - rclcpp::rclcpp - ) - - ament_add_gmock(point_cloud2_display_test test/rviz_default_plugins/displays/pointcloud/point_cloud2_display_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET point_cloud2_display_test) - target_include_directories(point_cloud2_display_test PRIVATE test) - target_link_libraries(point_cloud2_display_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - pointcloud_messages - ) - endif() - - ament_add_gmock(point_cloud_common_test test/rviz_default_plugins/displays/pointcloud/point_cloud_common_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET point_cloud_common_test) - target_include_directories(point_cloud_common_test PRIVATE test) - target_link_libraries(point_cloud_common_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - pointcloud_messages - ) - endif() - - ament_add_gmock(point_cloud_scalar_display_test test/rviz_default_plugins/displays/pointcloud/point_cloud_scalar_display_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET point_cloud_scalar_display_test) - target_include_directories(point_cloud_scalar_display_test PRIVATE test) - target_link_libraries(point_cloud_scalar_display_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - rviz_ogre_vendor::OgreMain - ) - endif() - - ament_add_gmock(point_cloud_transformers_test test/rviz_default_plugins/displays/pointcloud/point_cloud_transformers/axis_color_pc_transformer_test.cpp test/rviz_default_plugins/displays/pointcloud/point_cloud_transformers/flat_color_pc_transformer_test.cpp test/rviz_default_plugins/displays/pointcloud/point_cloud_transformers/intensity_pc_transformer_test.cpp test/rviz_default_plugins/displays/pointcloud/point_cloud_transformers/rgb8_pc_transformer_test.cpp test/rviz_default_plugins/displays/pointcloud/point_cloud_transformers/rgbf32_pc_transformer_test.cpp test/rviz_default_plugins/displays/pointcloud/point_cloud_transformers/xyz_pc_transformer_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET point_cloud_transformers_test) - target_include_directories(point_cloud_transformers_test PRIVATE test) - target_link_libraries(point_cloud_transformers_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - pointcloud_messages - ) - endif() - - ament_add_gmock(point_display_test test/rviz_default_plugins/displays/point/point_stamped_display_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET point_display_test) - target_include_directories(point_display_test PRIVATE test) - target_link_libraries(point_display_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - geometry_msgs::geometry_msgs - rviz_default_plugins - ogre_testing_environment - ) - endif() - - ament_add_gmock(pose_array_display_test test/rviz_default_plugins/displays/pose_array/pose_array_display_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET pose_array_display_test) - target_include_directories(pose_array_display_test PRIVATE test) - target_link_libraries(pose_array_display_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - - ament_add_gmock(pose_tool_test test/rviz_default_plugins/tools/pose/pose_tool_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET pose_tool_test) - target_include_directories(pose_tool_test PRIVATE test) - target_link_libraries(pose_tool_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - - ament_add_gmock(range_display_test test/rviz_default_plugins/displays/range/range_display_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET range_display_test) - target_include_directories(range_display_test PRIVATE test) - target_link_libraries(range_display_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - - ament_add_gmock(robot_test test/rviz_default_plugins/robot/robot_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET robot_test) - target_include_directories(robot_test PRIVATE test) - target_link_libraries(robot_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - ) - endif() - - ament_add_gmock(ros_image_texture_test test/rviz_default_plugins/displays/image/ros_image_texture_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET ros_image_texture_test) - target_include_directories(ros_image_texture_test PRIVATE test) - target_link_libraries(ros_image_texture_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - ) - endif() - - ament_add_gmock(selection_tool_test test/rviz_default_plugins/tools/select/selection_tool_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET selection_tool_test) - target_include_directories(selection_tool_test PRIVATE test) - target_link_libraries(selection_tool_test ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins ogre_testing_environment) - endif() - - ament_add_gmock(xy_orbit_view_controller_test test/rviz_default_plugins/view_controllers/xy_orbit/xy_orbit_view_controller_test.cpp - ${TEST_FIXTURE_OBJECTS} - ${SKIP_DISPLAY_TESTS}) - if(TARGET xy_orbit_view_controller_test) - target_include_directories(xy_orbit_view_controller_test PRIVATE test) - target_link_libraries(xy_orbit_view_controller_test - ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} - rviz_default_plugins - ) - endif() - - ament_add_gmock(frame_transformer_tf_test test/rviz_default_plugins/transformation/frame_transformer_tf_test.cpp ${TEST_FIXTURE_OBJECTS} + TIMEOUT 300 ${SKIP_DISPLAY_TESTS}) - if(TARGET frame_transformer_tf_test) - target_include_directories(frame_transformer_tf_test PRIVATE test) - target_link_libraries(frame_transformer_tf_test + if(TARGET rviz_default_plugins_display_tests) + target_include_directories(rviz_default_plugins_display_tests PRIVATE test) + target_link_libraries(rviz_default_plugins_display_tests ${TEST_FIXTURE_WITH_MOCK_LIBRARIES} rviz_default_plugins + ogre_testing_environment + marker_messages + pointcloud_messages + geometry_msgs::geometry_msgs + visualization_msgs::visualization_msgs + Qt${QT_VERSION_MAJOR}::Widgets + rviz_ogre_vendor::OgreMain ) endif() diff --git a/rviz_default_plugins/test/rviz_default_plugins/display_tests_main.cpp b/rviz_default_plugins/test/rviz_default_plugins/display_tests_main.cpp new file mode 100644 index 000000000..039f37028 --- /dev/null +++ b/rviz_default_plugins/test/rviz_default_plugins/display_tests_main.cpp @@ -0,0 +1,43 @@ +// Copyright (c) 2026, Open Source Robotics Foundation, Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// * Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + + +#include + +#include // NOLINT: cpplint is unable to handle the include order here + +// Shared main for the consolidated display tests binary. Some of the test +// suites drive Qt widgets, so a QApplication has to exist for the whole run. +// Suites that need rclcpp manage init/shutdown themselves in their fixtures. +int main(int argc, char ** argv) +{ + QApplication app(argc, argv); + testing::InitGoogleMock(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/rviz_default_plugins/test/rviz_default_plugins/displays/image/image_display_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/displays/image/image_display_test.cpp index d3b7177f9..85ca80ef3 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/displays/image/image_display_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/displays/image/image_display_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -77,6 +76,9 @@ class ImageDisplayTestFixture : public Test static void TearDownTestCase() { transformation_manager_.reset(); + // Destroy the node before shutting down its context, otherwise it lives + // until static destruction at process exit, which aborts. + ros_client_abstraction_.reset(); rclcpp::shutdown(); } @@ -148,10 +150,3 @@ TEST_F(ImageDisplayTestFixture, initialize_propagates_smooth_scaling_to_texture) ImageDisplay imageDisplay(std::move(texture_)); imageDisplay.initialize(context_.get()); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/displays/marker/marker_common_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/displays/marker/marker_common_test.cpp index 6d9ba45fd..e6c76bfcc 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/displays/marker/marker_common_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/displays/marker/marker_common_test.cpp @@ -79,6 +79,9 @@ class MarkerCommonFixture : public DisplayTestFixture static void TearDownTestCase() { DisplayTestFixture::TearDownTestCase(); + // Destroy the node before shutting down its context, otherwise it lives + // until static destruction at process exit, which aborts. + ros_client_abstraction_.reset(); rclcpp::shutdown(); } diff --git a/rviz_default_plugins/test/rviz_default_plugins/displays/marker/markers/markers_test_fixture.cpp b/rviz_default_plugins/test/rviz_default_plugins/displays/marker/markers/markers_test_fixture.cpp index bb85720dc..f54cdc9dd 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/displays/marker/markers/markers_test_fixture.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/displays/marker/markers/markers_test_fixture.cpp @@ -61,6 +61,9 @@ void MarkersTestFixture::SetUpTestCase() void MarkersTestFixture::TearDownTestCase() { DisplayTestFixture::TearDownTestCase(); + // Destroy the node before shutting down its context, otherwise it lives + // until static destruction at process exit, which aborts. + ros_client_abstraction_.reset(); rclcpp::shutdown(); } diff --git a/rviz_default_plugins/test/rviz_default_plugins/displays/pointcloud/point_cloud_common_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/displays/pointcloud/point_cloud_common_test.cpp index 745c3551e..72ca3d67d 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/displays/pointcloud/point_cloud_common_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/displays/pointcloud/point_cloud_common_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -234,10 +233,3 @@ TEST_F( auto point_clouds = rviz_default_plugins::findAllPointClouds(scene_manager_->getRootSceneNode()); ASSERT_THAT(point_clouds.size(), Eq(0u)); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/ogre_testing_environment.cpp b/rviz_default_plugins/test/rviz_default_plugins/ogre_testing_environment.cpp index d2f177246..58552ab3d 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/ogre_testing_environment.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/ogre_testing_environment.cpp @@ -42,7 +42,10 @@ namespace rviz_default_plugins void OgreTestingEnvironment::setUpOgreTestEnvironment(bool debug) { - if (!debug) { + // Ogre::LogManager is a singleton, creating it twice is not allowed. + // SetUpTestCase() runs once per test suite, and a consolidated test binary + // runs several suites in the same process. + if (!debug && Ogre::LogManager::getSingletonPtr() == nullptr) { const std::string & name = ""; auto lm = new Ogre::LogManager(); lm->createLog(name, false, debug, true); diff --git a/rviz_default_plugins/test/rviz_default_plugins/robot/robot_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/robot/robot_test.cpp index 41da87cb2..c058779e6 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/robot/robot_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/robot/robot_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -401,7 +400,6 @@ TEST_F(RobotTestFixture, changedExpandTree_hides_link_and_joint_properties_on_de EXPECT_FALSE(test_robot_link->isExpanded()); } - TEST_F(RobotTestFixture, changedExpandLinkDetails_shows_link_details) { robot_->load(urdf_model_); @@ -476,10 +474,3 @@ TEST_F(RobotTestFixture, changedEnableAllLinks_toggles_all_links) { EXPECT_FALSE(prop->childAt(7)->getValue().toBool()); EXPECT_FALSE(prop->childAt(8)->getValue().toBool()); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/tools/measure/measure_tool_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/tools/measure/measure_tool_test.cpp index 5e18e9740..57a7c079a 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/tools/measure/measure_tool_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/tools/measure/measure_tool_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -73,7 +72,6 @@ class MeasureToolTestFixture : public ToolTestFixture, public DisplayTestFixture std::shared_ptr measure_tool_; }; - TEST_F(MeasureToolTestFixture, choosing_two_objects_shows_a_line_and_the_distance) { auto obj1 = addVisible3DObject(10, 10, {1.0, 1.0, 0.0}); auto obj2 = addVisible3DObject(20, 10, {2.0, 1.0, 0.0}); @@ -131,10 +129,3 @@ TEST_F(MeasureToolTestFixture, right_clicking_removes_the_measurement_line) { ASSERT_FALSE(line->isVisible()); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/tools/pose/pose_tool_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/tools/pose/pose_tool_test.cpp index b3ed5e1bb..7dc6084ef 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/tools/pose/pose_tool_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/tools/pose/pose_tool_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -132,11 +131,3 @@ TEST_F(PoseToolTestFixture, deactivate_makes_arrow_invisible) { ASSERT_THAT(arrows, SizeIs(1)); EXPECT_FALSE(rviz_default_plugins::arrowIsVisible(arrows[0])); } - - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/tools/select/selection_tool_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/tools/select/selection_tool_test.cpp index eaadd4a30..cbd4f38da 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/tools/select/selection_tool_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/tools/select/selection_tool_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -126,10 +125,3 @@ TEST_F(SelectionToolTestFixture, processKeyEvent_F_key_should_focus_on_selection QKeyEvent * keyEvent = new QKeyEvent(QKeyEvent::KeyPress, Qt::Key_F, Qt::NoModifier); selection_tool_->processKeyEvent(keyEvent, nullptr); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/fps/fps_view_controller_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/fps/fps_view_controller_test.cpp index 734141521..7565b3ba8 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/fps/fps_view_controller_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/fps/fps_view_controller_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -214,10 +213,3 @@ TEST_F(FPSViewControllerTestFixture, mimic_does_not_change_view_when_given_any_v EXPECT_THAT(y_position->getValue().toFloat(), FloatNear(orbit_camera_position.y, 0.001f)); EXPECT_THAT(z_position->getValue().toFloat(), FloatNear(orbit_camera_position.z, 0.001f)); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/frame/frame_view_controller_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/frame/frame_view_controller_test.cpp index 21da5dcc4..32c09098f 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/frame/frame_view_controller_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/frame/frame_view_controller_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -83,7 +82,6 @@ class FrameViewControllerTestFixture : public ViewControllerTestFixture return enum_property->getOptionInt(); } - void setAxisPropertyOption(int option) { auto axis_property = frame_->childAt(7); @@ -250,10 +248,3 @@ TEST_F(FrameViewControllerTestFixture, checkCameraLooksAlong(Ogre::Vector3(0, 0, -1)); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/orbit/orbit_view_controller_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/orbit/orbit_view_controller_test.cpp index 3cc277868..ab653b8f5 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/orbit/orbit_view_controller_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/orbit/orbit_view_controller_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -245,10 +244,3 @@ TEST_F(OrbitViewControllerTestFixture, mimic_does_not_move_camera_when_given_sam EXPECT_THAT(yaw_property->getValue().toFloat(), FloatNear(0, 0.001f)); EXPECT_THAT(pitch_property->getValue().toFloat(), FloatNear(0.5f, 0.001f)); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/ortho/ortho_view_controller_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/ortho/ortho_view_controller_test.cpp index 1d300b717..40f8ac2ae 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/ortho/ortho_view_controller_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/ortho/ortho_view_controller_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -200,10 +199,3 @@ TEST_F( EXPECT_THAT(x_property->getValue().toFloat(), FloatNear(0, 0.001f)); EXPECT_THAT(y_property->getValue().toFloat(), FloatNear(0, 0.001f)); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/xy_orbit/xy_orbit_view_controller_test.cpp b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/xy_orbit/xy_orbit_view_controller_test.cpp index 7b2d50b2a..d73a4b8d4 100644 --- a/rviz_default_plugins/test/rviz_default_plugins/view_controllers/xy_orbit/xy_orbit_view_controller_test.cpp +++ b/rviz_default_plugins/test/rviz_default_plugins/view_controllers/xy_orbit/xy_orbit_view_controller_test.cpp @@ -27,7 +27,6 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. - #include #include @@ -307,10 +306,3 @@ TEST_F( float motion_magnitude = std::sqrt(new_x * new_x + new_y * new_y); EXPECT_THAT(motion_magnitude, Le(1.1f)); } - -int main(int argc, char ** argv) -{ - QApplication app(argc, argv); - InitGoogleMock(&argc, argv); - return RUN_ALL_TESTS(); -}