From da1039d2f3cdf48277439b4392c90196b4080076 Mon Sep 17 00:00:00 2001 From: Christophe Bedard Date: Thu, 22 Aug 2024 13:48:06 -0700 Subject: [PATCH] Run relevant test_tracetools tests with all instrumented rmw impls This is equivalent to #116 but for Jazzy. Signed-off-by: Christophe Bedard --- test_tracetools/CMakeLists.txt | 39 +++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/test_tracetools/CMakeLists.txt b/test_tracetools/CMakeLists.txt index a71d7c0f..9d8ebb42 100644 --- a/test_tracetools/CMakeLists.txt +++ b/test_tracetools/CMakeLists.txt @@ -198,6 +198,9 @@ if(BUILD_TESTING) # Only run tracing tests if instrumentation and tracepoints are included if(NOT TRACETOOLS_TRACEPOINTS_EXCLUDED) find_package(ament_cmake_pytest REQUIRED) + find_package(rmw_implementation_cmake REQUIRED) + + # Tests to run with the default rmw implementation, which should not matter set(_test_tracetools_pytest_tests test/test_buffer.py test/test_executor.py @@ -205,12 +208,7 @@ if(BUILD_TESTING) test/test_intra_pub_sub.py test/test_lifecycle_node.py test/test_node.py - test/test_pub_sub.py - test/test_generic_pub_sub.py - test/test_publisher.py test/test_service.py - test/test_subscription.py - test/test_generic_subscription.py test/test_timer.py ) foreach(_test_path ${_test_tracetools_pytest_tests}) @@ -221,6 +219,37 @@ if(BUILD_TESTING) WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) endforeach() + + # Tests to run with all instrumented/supported rmw implementations + set(_test_tracetools_pytest_tests_multi_rmw + test/test_generic_pub_sub.py + test/test_generic_subscription.py + test/test_pub_sub.py + test/test_publisher.py + test/test_subscription.py + ) + set(_test_tracetools_rmw_implementations + rmw_connextdds + rmw_cyclonedds_cpp + rmw_fastrtps_cpp + ) + get_available_rmw_implementations(rmw_implementations) + foreach(_test_path ${_test_tracetools_pytest_tests_multi_rmw}) + get_filename_component(_test_name ${_test_path} NAME_WE) + foreach(rmw_implementation ${_test_tracetools_rmw_implementations}) + if(rmw_implementation IN_LIST rmw_implementations) + ament_add_pytest_test(${_test_name}__${rmw_implementation} ${_test_path} + ENV RMW_IMPLEMENTATION=${rmw_implementation} + APPEND_ENV PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR} + TIMEOUT 60 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) + else() + message( + "rmw implementation '${rmw_implementation}' not available for test '${_test_name}'") + endif() + endforeach() + endforeach() endif() endif()