From 6526187c3ba72eab2a080e1ebca46f9068cfe120 Mon Sep 17 00:00:00 2001 From: Aditya Pande Date: Tue, 30 Jan 2024 22:24:44 +0000 Subject: [PATCH 1/2] Added a new cmake flag to enable isolation Signed-off-by: Aditya Pande --- ament_cmake_test/cmake/ament_add_test.cmake | 9 +++++++-- ament_cmake_test/package.xml | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ament_cmake_test/cmake/ament_add_test.cmake b/ament_cmake_test/cmake/ament_add_test.cmake index a7dcea35..eb858461 100644 --- a/ament_cmake_test/cmake/ament_add_test.cmake +++ b/ament_cmake_test/cmake/ament_add_test.cmake @@ -56,7 +56,7 @@ function(ament_add_test testname) cmake_parse_arguments(ARG "GENERATE_RESULT_FOR_RETURN_CODE_ZERO;SKIP_TEST" "OUTPUT_FILE;RESULT_FILE;RUNNER;SKIP_RETURN_CODE;TIMEOUT;WORKING_DIRECTORY" - "APPEND_ENV;APPEND_LIBRARY_DIRS;COMMAND;ENV" + "APPEND_ENV;APPEND_LIBRARY_DIRS;COMMAND;ENV;ISOLATE_TEST" ${ARGN}) if(ARG_UNPARSED_ARGUMENTS) message(FATAL_ERROR "ament_add_test() called with unused arguments: " @@ -84,8 +84,13 @@ function(ament_add_test testname) endif() get_executable_path(python_interpreter Python3::Interpreter BUILD) + if(ISOLATE_TEST AND UNIX) + set(isolate_test_prefix "{python_interpreter}" "-m" "linux_isolate_process") + else() + set(isolate_test_prefix "") + endif() # wrap command with run_test script to ensure test result generation - set(cmd_wrapper "${python_interpreter}" "-u" "${ARG_RUNNER}" + set(cmd_wrapper "${isolate_test_prefix}" "${python_interpreter}" "-u" "${ARG_RUNNER}" "${ARG_RESULT_FILE}" "--package-name" "${PROJECT_NAME}") if(ARG_SKIP_TEST) diff --git a/ament_cmake_test/package.xml b/ament_cmake_test/package.xml index f3f97fd0..abf2ce47 100644 --- a/ament_cmake_test/package.xml +++ b/ament_cmake_test/package.xml @@ -16,6 +16,7 @@ ament_cmake_python ament_cmake_core + linux_isolate_process ament_cmake From fb6680ffa5efcd5575f4d83a0ae734a422375e8b Mon Sep 17 00:00:00 2001 From: Aditya Pande Date: Wed, 31 Jan 2024 22:04:34 +0000 Subject: [PATCH 2/2] Reordered args Signed-off-by: Aditya Pande --- ament_cmake_test/cmake/ament_add_test.cmake | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/ament_cmake_test/cmake/ament_add_test.cmake b/ament_cmake_test/cmake/ament_add_test.cmake index eb858461..8d880225 100644 --- a/ament_cmake_test/cmake/ament_add_test.cmake +++ b/ament_cmake_test/cmake/ament_add_test.cmake @@ -54,9 +54,9 @@ # function(ament_add_test testname) cmake_parse_arguments(ARG - "GENERATE_RESULT_FOR_RETURN_CODE_ZERO;SKIP_TEST" + "GENERATE_RESULT_FOR_RETURN_CODE_ZERO;SKIP_TEST;ISOLATE_TEST" "OUTPUT_FILE;RESULT_FILE;RUNNER;SKIP_RETURN_CODE;TIMEOUT;WORKING_DIRECTORY" - "APPEND_ENV;APPEND_LIBRARY_DIRS;COMMAND;ENV;ISOLATE_TEST" + "APPEND_ENV;APPEND_LIBRARY_DIRS;COMMAND;ENV" ${ARGN}) if(ARG_UNPARSED_ARGUMENTS) message(FATAL_ERROR "ament_add_test() called with unused arguments: " @@ -84,15 +84,13 @@ function(ament_add_test testname) endif() get_executable_path(python_interpreter Python3::Interpreter BUILD) - if(ISOLATE_TEST AND UNIX) - set(isolate_test_prefix "{python_interpreter}" "-m" "linux_isolate_process") - else() - set(isolate_test_prefix "") - endif() # wrap command with run_test script to ensure test result generation - set(cmd_wrapper "${isolate_test_prefix}" "${python_interpreter}" "-u" "${ARG_RUNNER}" + set(cmd_wrapper "${python_interpreter}" "-u" "${ARG_RUNNER}" "${ARG_RESULT_FILE}" "--package-name" "${PROJECT_NAME}") + if(ISOLATE_TEST AND UNIX) + list(PREPEND cmd_wrapper "{python_interpreter}" "-m" "linux_isolate_process") + endif() if(ARG_SKIP_TEST) list(APPEND cmd_wrapper "--skip-test") set(ARG_SKIP_RETURN_CODE 0)