diff --git a/projects/rocprofiler-systems/tests/rocprof-sys-python-tests.cmake b/projects/rocprofiler-systems/tests/rocprof-sys-python-tests.cmake index 88448afd94..7783f23343 100644 --- a/projects/rocprofiler-systems/tests/rocprof-sys-python-tests.cmake +++ b/projects/rocprofiler-systems/tests/rocprof-sys-python-tests.cmake @@ -90,6 +90,9 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS}) DEPENDS code-coverage-basic-blocks-binary-rewrite code-coverage-basic-blocks-binary-rewrite-run code-coverage-basic-blocks-hybrid-runtime-instrument + FIXTURES_REQUIRED + code-coverage-basic-blocks-binary-rewrite-fixture + code-coverage-basic-blocks-hybrid-runtime-instrument-fixture LABELS "code-coverage" ENVIRONMENT "${_python_environment}" ) diff --git a/projects/rocprofiler-systems/tests/rocprof-sys-testing.cmake b/projects/rocprofiler-systems/tests/rocprof-sys-testing.cmake index 31d1f98e82..64a5ba1a7e 100644 --- a/projects/rocprofiler-systems/tests/rocprof-sys-testing.cmake +++ b/projects/rocprofiler-systems/tests/rocprof-sys-testing.cmake @@ -705,6 +705,15 @@ function(ROCPROFILER_SYSTEMS_ADD_TEST) $/${TEST_NAME}.inst ${TEST_RUN_ARGS} WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) + + add_test( + NAME ${TEST_NAME}-binary-rewrite-cleanup + COMMAND + ${CMAKE_COMMAND} -E rm -rf + $/${TEST_NAME}.inst + ${PROJECT_BINARY_DIR}/rocprof-sys-tests-output/${TEST_NAME}-binary-rewrite + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + ) endif() if(NOT TEST_SKIP_RUNTIME AND NOT ROCPROFSYS_USE_SANITIZER) @@ -715,6 +724,14 @@ function(ROCPROFILER_SYSTEMS_ADD_TEST) $ ${TEST_RUN_ARGS} WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) + + add_test( + NAME ${TEST_NAME}-runtime-instrument-cleanup + COMMAND + ${CMAKE_COMMAND} -E rm -rf + ${PROJECT_BINARY_DIR}/rocprof-sys-tests-output/${TEST_NAME}-runtime-instrument + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + ) endif() if(NOT TEST_SKIP_SYS_RUN) @@ -740,7 +757,9 @@ function(ROCPROFILER_SYSTEMS_ADD_TEST) sampling binary-rewrite binary-rewrite-run + binary-rewrite-cleanup runtime-instrument + runtime-instrument-cleanup sys-run ) string( @@ -783,7 +802,9 @@ function(ROCPROFILER_SYSTEMS_ADD_TEST) endif() endif() - if("${_TEST}" MATCHES "binary-rewrite-run") + if("${_TEST}" MATCHES "-cleanup$") + set(_REGEX_VAR) + elseif("${_TEST}" MATCHES "binary-rewrite-run") set(_REGEX_VAR REWRITE_RUN) elseif("${_TEST}" MATCHES "runtime-instrument") set(_REGEX_VAR RUNTIME) @@ -838,6 +859,36 @@ function(ROCPROFILER_SYSTEMS_ADD_TEST) FIXTURES_REQUIRED rocprofsys-global-tmp-files ${_props} ) + + if("${_TEST}" STREQUAL "binary-rewrite") + set_tests_properties( + ${TEST_NAME}-${_TEST} + PROPERTIES FIXTURES_SETUP ${TEST_NAME}-binary-rewrite-fixture + ) + elseif("${_TEST}" STREQUAL "binary-rewrite-run") + set_tests_properties( + ${TEST_NAME}-${_TEST} + PROPERTIES + FIXTURES_REQUIRED + "rocprofsys-global-tmp-files;${TEST_NAME}-binary-rewrite-fixture" + ) + elseif("${_TEST}" STREQUAL "binary-rewrite-cleanup") + set_tests_properties( + ${TEST_NAME}-${_TEST} + PROPERTIES FIXTURES_CLEANUP ${TEST_NAME}-binary-rewrite-fixture + ) + elseif("${_TEST}" STREQUAL "runtime-instrument") + set_tests_properties( + ${TEST_NAME}-${_TEST} + PROPERTIES FIXTURES_SETUP ${TEST_NAME}-runtime-instrument-fixture + ) + elseif("${_TEST}" STREQUAL "runtime-instrument-cleanup") + set_tests_properties( + ${TEST_NAME}-${_TEST} + PROPERTIES + FIXTURES_CLEANUP ${TEST_NAME}-runtime-instrument-fixture + ) + endif() endif() endforeach() endif() @@ -1032,7 +1083,7 @@ function(ROCPROFILER_SYSTEMS_ADD_PYTHON_TEST) TEST "STANDALONE" # options "NAME;FILE;TIMEOUT;PYTHON_EXECUTABLE;PYTHON_VERSION" # single value args - "PROFILE_ARGS;RUN_ARGS;ENVIRONMENT;LABELS;PROPERTIES;PASS_REGEX;FAIL_REGEX;SKIP_REGEX;DEPENDS;COMMAND" # multiple + "PROFILE_ARGS;RUN_ARGS;ENVIRONMENT;LABELS;PROPERTIES;PASS_REGEX;FAIL_REGEX;SKIP_REGEX;DEPENDS;COMMAND;FIXTURES_REQUIRED" # multiple # value args ${ARGN} ) @@ -1131,6 +1182,12 @@ function(ROCPROFILER_SYSTEMS_ADD_PYTHON_TEST) rocprofiler_systems_check_pass_fail_regex("${_TEST}" "${_PASS_REGEX}" "${_FAIL_REGEX}" ) + + set(_PYTHON_FIXTURES "rocprofsys-global-tmp-files") + if(TEST_FIXTURES_REQUIRED) + list(APPEND _PYTHON_FIXTURES "${TEST_FIXTURES_REQUIRED}") + endif() + set_tests_properties( ${_TEST} PROPERTIES @@ -1142,7 +1199,7 @@ function(ROCPROFILER_SYSTEMS_ADD_PYTHON_TEST) FAIL_REGULAR_EXPRESSION "${${_FAIL_REGEX}}" SKIP_REGULAR_EXPRESSION "${TEST_SKIP_REGEX}" REQUIRED_FILES "${TEST_FILE}" - FIXTURES_REQUIRED rocprofsys-global-tmp-files + FIXTURES_REQUIRED "${_PYTHON_FIXTURES}" ${_TEST_PROPERTIES} ) endforeach() @@ -1321,6 +1378,16 @@ function(ROCPROFILER_SYSTEMS_ADD_VALIDATION_TEST) list(APPEND TEST_ENVIRONMENT "ROCPROFSYS_CI_TIMEOUT=${TEST_TIMEOUT}") + # Determine the cleanup fixture this validation test should require + set(_VALIDATION_FIXTURES "rocprofsys-global-tmp-files") + if("${TEST_NAME}" MATCHES "-binary-rewrite(-run)?$") + string(REGEX REPLACE "-binary-rewrite(-run)?$" "" _BASE_TEST_NAME "${TEST_NAME}") + list(APPEND _VALIDATION_FIXTURES "${_BASE_TEST_NAME}-binary-rewrite-fixture") + elseif("${TEST_NAME}" MATCHES "-runtime-instrument$") + string(REGEX REPLACE "-runtime-instrument$" "" _BASE_TEST_NAME "${TEST_NAME}") + list(APPEND _VALIDATION_FIXTURES "${_BASE_TEST_NAME}-runtime-instrument-fixture") + endif() + foreach( _TEST validate-${TEST_NAME}-timemory @@ -1361,7 +1428,7 @@ function(ROCPROFILER_SYSTEMS_ADD_VALIDATION_TEST) FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGEX}" SKIP_REGULAR_EXPRESSION "${TEST_SKIP_REGEX}" REQUIRED_FILES "${TEST_FILE}" - FIXTURES_REQUIRED rocprofsys-global-tmp-files + FIXTURES_REQUIRED "${_VALIDATION_FIXTURES}" ${TEST_PROPERTIES} ) endforeach()