[rocprof-sys] Add test cleanup fixtures for binary-rewrite and runtime-instrument tests (#2012)
- Added `binary-rewrite-cleanup` and `runtime-instrument-cleanup` tests that remove instrumented binaries and output directories using `cmake -E rm -rf` - Implemented CMake test fixtures (`FIXTURES_SETUP` and `FIXTURES_CLEANUP`) to establish proper test ordering: - `binary-rewrite` sets up the `binary-rewrite-fixture` - `binary-rewrite-run` and validation tests require this fixture - `binary-rewrite-cleanup` performs cleanup for this fixture - Same pattern applied for `runtime-instrument` - Extended `ROCPROFILER_SYSTEMS_ADD_PYTHON_TEST` to accept `FIXTURES_REQUIRED` parameter - Updated validation tests to require appropriate cleanup fixtures based on test name pattern matching - Added fixture requirements to Python code-coverage tests
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
fd61b0f507
Коммит
ee7305e795
@@ -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}"
|
||||
)
|
||||
|
||||
@@ -705,6 +705,15 @@ function(ROCPROFILER_SYSTEMS_ADD_TEST)
|
||||
$<TARGET_FILE_DIR:${TEST_TARGET}>/${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
|
||||
$<TARGET_FILE_DIR:${TEST_TARGET}>/${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)
|
||||
$<TARGET_FILE:${TEST_TARGET}> ${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()
|
||||
|
||||
Ссылка в новой задаче
Block a user