2024-10-15 11:20:40 -04:00
set ( ROCPROFSYS_ABORT_FAIL_REGEX
2023-10-16 18:04:47 -05:00
"### ERROR ###|unknown-hash=|address of faulting memory reference|exiting with non-zero exit code|terminate called after throwing an instance|calling abort.. in |Exit code: [1-9]"
CACHE INTERNAL "Regex to catch abnormal exits when a PASS_REGULAR_EXPRESSION is set"
FORCE )
2023-06-14 11:55:22 -05:00
2022-03-07 20:40:48 -06:00
# adds a ctest for executable
2024-10-15 11:20:40 -04:00
function ( ROCPROFILER_SYSTEMS_ADD_BIN_TEST )
2022-03-07 20:40:48 -06:00
cmake_parse_arguments (
TEST
2023-06-14 11:55:22 -05:00
"" # options
2022-03-07 20:40:48 -06:00
"NAME;TARGET;TIMEOUT;WORKING_DIRECTORY" # single value args
2022-04-25 17:00:52 -05:00
"ARGS;ENVIRONMENT;LABELS;PROPERTIES;PASS_REGEX;FAIL_REGEX;SKIP_REGEX;DEPENDS;COMMAND" # multiple
2022-03-07 20:40:48 -06:00
# value args
${ ARGN } )
2022-07-21 01:15:41 -05:00
if ( NOT TEST_WORKING_DIRECTORY )
set ( TEST_WORKING_DIRECTORY ${ PROJECT_BINARY_DIR } )
endif ()
2022-03-07 20:40:48 -06:00
if ( NOT TEST_ENVIRONMENT )
set ( TEST_ENVIRONMENT
2024-10-15 11:20:40 -04:00
"ROCPROFSYS_TRACE=ON"
"ROCPROFSYS_PROFILE=ON"
"ROCPROFSYS_USE_SAMPLING=ON"
"ROCPROFSYS_TIME_OUTPUT=OFF"
2024-06-27 16:51:43 -05:00
"LD_LIBRARY_PATH=${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}:$ENV{LD_LIBRARY_PATH}"
2022-03-07 20:40:48 -06:00
)
endif ()
2022-07-21 01:15:41 -05:00
# common
2023-06-14 11:55:22 -05:00
list (
APPEND
TEST_ENVIRONMENT
2024-10-15 11:20:40 -04:00
"ROCPROFSYS_CI=ON"
"ROCPROFSYS_CI_TIMEOUT=${TEST_TIMEOUT}"
"ROCPROFSYS_CONFIG_FILE="
"ROCPROFSYS_OUTPUT_PATH=${PROJECT_BINARY_DIR}/rocprof-sys-tests-output"
2023-06-14 11:55:22 -05:00
"TWD=${TEST_WORKING_DIRECTORY}" )
2022-07-21 01:15:41 -05:00
# copy for inverse
set ( TEST_ENVIRONMENT_INV "${TEST_ENVIRONMENT}" )
# different for regular test and inverse test
2024-10-15 11:20:40 -04:00
list ( APPEND TEST_ENVIRONMENT "ROCPROFSYS_OUTPUT_PREFIX=${TEST_NAME}/" )
list ( APPEND TEST_ENVIRONMENT_INV "ROCPROFSYS_OUTPUT_PREFIX=${TEST_NAME}-inverse/" )
2022-03-07 20:40:48 -06:00
2023-06-14 11:55:22 -05:00
if ( NOT "${TEST_PASS_REGEX}" STREQUAL ""
AND NOT "${TEST_FAIL_REGEX}" STREQUAL ""
2024-10-15 11:20:40 -04:00
AND NOT "${TEST_FAIL_REGEX}" MATCHES "\\|ROCPROFSYS_ABORT_FAIL_REGEX" )
rocprofiler_systems_message (
2023-06-14 11:55:22 -05:00
FATAL_ERROR
2024-10-15 11:20:40 -04:00
"${TEST_NAME} has set pass and fail regexes but fail regex does not include '|ROCPROFSYS_ABORT_FAIL_REGEX'"
2023-06-14 11:55:22 -05:00
)
endif ()
if ( "${TEST_FAIL_REGEX}" STREQUAL "" )
2024-10-15 11:20:40 -04:00
set ( TEST_FAIL_REGEX "(${ROCPROFSYS_ABORT_FAIL_REGEX})" )
2023-06-14 11:55:22 -05:00
else ()
2024-10-15 11:20:40 -04:00
string ( REPLACE "|ROCPROFSYS_ABORT_FAIL_REGEX" "|${ROCPROFSYS_ABORT_FAIL_REGEX}"
2023-06-14 11:55:22 -05:00
TEST_FAIL_REGEX "${TEST_FAIL_REGEX}" )
endif ()
2022-03-07 20:40:48 -06:00
if ( TEST_COMMAND )
add_test (
NAME ${ TEST_NAME }
COMMAND ${ TEST_COMMAND } ${ TEST_ARGS }
WORKING_DIRECTORY ${ TEST_WORKING_DIRECTORY } )
set_tests_properties (
${ TEST_NAME }
PROPERTIES ENVIRONMENT
"${TEST_ENVIRONMENT}"
TIMEOUT
${ TEST_TIMEOUT }
2022-04-04 15:27:38 -05:00
DEPENDS
"${TEST_DEPENDS}"
2022-03-07 20:40:48 -06:00
LABELS
2024-10-15 11:20:40 -04:00
"rocprofiler-systems-bin;${TEST_LABELS}"
2022-03-07 20:40:48 -06:00
PASS_REGULAR_EXPRESSION
2022-04-25 17:00:52 -05:00
"${TEST_PASS_REGEX}"
2022-03-07 20:40:48 -06:00
FAIL_REGULAR_EXPRESSION
2022-04-25 17:00:52 -05:00
"${TEST_FAIL_REGEX}"
2022-03-07 20:40:48 -06:00
SKIP_REGULAR_EXPRESSION
2022-04-25 17:00:52 -05:00
"${TEST_SKIP_REGEX}"
2022-03-07 20:40:48 -06:00
${ TEST_PROPERTIES } )
elseif ( TARGET ${ TEST_TARGET } )
add_test (
NAME ${ TEST_NAME }
COMMAND $< TARGET_FILE:${TEST_TARGET} > ${ TEST_ARGS }
2022-07-21 01:15:41 -05:00
WORKING_DIRECTORY ${ TEST_WORKING_DIRECTORY } )
2022-03-07 20:40:48 -06:00
set_tests_properties (
${ TEST_NAME }
PROPERTIES ENVIRONMENT
"${TEST_ENVIRONMENT}"
TIMEOUT
${ TEST_TIMEOUT }
2022-04-04 15:27:38 -05:00
DEPENDS
"${TEST_DEPENDS}"
2022-03-07 20:40:48 -06:00
LABELS
2024-10-15 11:20:40 -04:00
"rocprofiler-systems-bin;${TEST_LABELS}"
2022-03-07 20:40:48 -06:00
PASS_REGULAR_EXPRESSION
2022-04-25 17:00:52 -05:00
"${TEST_PASS_REGEX}"
2022-03-07 20:40:48 -06:00
FAIL_REGULAR_EXPRESSION
2022-04-25 17:00:52 -05:00
"${TEST_FAIL_REGEX}"
2022-03-07 20:40:48 -06:00
SKIP_REGULAR_EXPRESSION
2022-04-25 17:00:52 -05:00
"${TEST_SKIP_REGEX}"
2022-03-07 20:40:48 -06:00
${ TEST_PROPERTIES } )
2024-10-15 11:20:40 -04:00
elseif ( ROCPROFSYS_BUILD_TESTING )
2022-03-07 20:40:48 -06:00
message ( FATAL_ERROR "Error! ${TEST_TARGET} does not exist" )
endif ()
endfunction ()
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-instrument-help
TARGET rocprofiler-systems-instrument
2022-03-07 20:40:48 -06:00
ARGS --help
2024-10-15 11:20:40 -04:00
LABELS rocprofiler-systems-instrument
2022-04-05 00:24:34 -05:00
TIMEOUT 45
2022-04-25 17:00:52 -05:00
PASS_REGEX
2024-10-15 11:20:40 -04:00
".*\\\[rocprof-sys-instrument\\\] Usage:.*\\\[DEBUG OPTIONS\\\].*\\\[MODE OPTIONS\\\].*\\\[LIBRARY OPTIONS\\\].*\\\[SYMBOL SELECTION OPTIONS\\\].*\\\[RUNTIME OPTIONS\\\].*\\\[GRANULARITY OPTIONS\\\].*\\\[DYNINST OPTIONS\\\].*"
2022-03-07 20:40:48 -06:00
)
2023-03-07 06:04:19 -06:00
# on RedHat, /usr/bin/ls is a script for `coreutils --coreutils-prog=ls`
if ( EXISTS /usr/bin/coreutils )
set ( LS_NAME "coreutils" )
set ( LS_ARGS "--coreutils-prog=ls" )
else ()
set ( LS_NAME ls )
set ( LS_ARGS )
endif ()
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-instrument-simulate-ls
TARGET rocprofiler-systems-instrument
2022-04-05 00:24:34 -05:00
ARGS --simulate
--print-format
json
txt
xml
-v
2022-07-21 01:15:41 -05:00
2
2022-06-17 15:52:58 -05:00
--all-functions
2022-04-05 00:24:34 -05:00
--
2023-03-07 06:04:19 -06:00
${ LS_NAME }
${ LS_ARGS }
2022-06-17 15:52:58 -05:00
LABELS "simulate"
2023-03-07 06:04:19 -06:00
TIMEOUT 240 )
2022-03-07 20:40:48 -06:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-instrument-simulate-ls-check
DEPENDS rocprofiler-systems-instrument-simulate-ls
COMMAND
ls
rocprof-sys-tests-output/rocprofiler-systems-instrument-simulate-ls/instrumentation
2022-04-05 00:24:34 -05:00
TIMEOUT 60
2022-04-25 17:00:52 -05:00
PASS_REGEX
2022-08-31 01:24:31 -05:00
".*available.json.*available.txt.*available.xml.*excluded.json.*excluded.txt.*excluded.xml.*instrumented.json.*instrumented.txt.*instrumented.xml.*overlapping.json.*overlapping.txt.*overlapping.xml.*"
2024-10-15 11:20:40 -04:00
FAIL_REGEX "No such file or directory|not found|ROCPROFSYS_ABORT_FAIL_REGEX" )
2022-03-07 20:40:48 -06:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-instrument-simulate-lib
TARGET rocprofiler-systems-instrument
ARGS --print-available functions -v 2 --
$< TARGET_FILE:rocprofiler-systems-user-library >
2022-07-21 01:15:41 -05:00
LABELS "simulate"
TIMEOUT 120
PASS_REGEX
2024-10-15 11:20:40 -04:00
"\\\[rocprof-sys\\\]\\\[exe\\\] Runtime instrumentation is not possible!(.*)\n(.*)\\\[rocprof-sys\\\]\\\[exe\\\] Switching to binary rewrite mode and assuming '--simulate --all-functions'"
2022-07-21 01:15:41 -05:00
)
2024-10-15 11:20:40 -04:00
file ( MAKE_DIRECTORY ${ PROJECT_BINARY_DIR } /rocprof-sys-tests-output/tmp )
2023-03-07 06:04:19 -06:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-instrument-simulate-lib-basename
TARGET rocprofiler-systems-instrument
2023-03-07 06:04:19 -06:00
ARGS --print-available
functions
-v
2
-o
2024-10-15 11:20:40 -04:00
${ PROJECT_BINARY_DIR } /rocprof-sys-tests-output/rocprof-sys-instrument-simulate-lib-basename/ ${ CMAKE_SHARED_LIBRARY_PREFIX }$< TARGET_FILE_BASE_NAME:rocprofiler-systems-user-library >${ CMAKE_SHARED_LIBRARY_SUFFIX }
2023-03-07 06:04:19 -06:00
--
2024-10-15 11:20:40 -04:00
${ CMAKE_SHARED_LIBRARY_PREFIX }$< TARGET_FILE_BASE_NAME:rocprofiler-systems-user-library >${ CMAKE_SHARED_LIBRARY_SUFFIX }
2023-03-07 06:04:19 -06:00
LABELS "simulate"
TIMEOUT 120
2024-10-15 11:20:40 -04:00
WORKING_DIRECTORY ${ PROJECT_BINARY_DIR } /rocprof-sys-tests-output/tmp )
2023-03-07 06:04:19 -06:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-instrument-write-log
TARGET rocprofiler-systems-instrument
2023-03-07 06:04:19 -06:00
ARGS --print-instrumented
functions
-v
1
--log-file
user.log
--
${ LS_NAME }
${ LS_ARGS }
2022-09-21 13:58:14 -05:00
LABELS "log"
TIMEOUT 120
PASS_REGEX "Opening .*/instrumentation/user.log" )
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-instrument-write-log-check
DEPENDS rocprofiler-systems-instrument-write-log
COMMAND
ls
rocprof-sys-tests-output/rocprofiler-systems-instrument-write-log/instrumentation/user.log
2022-09-21 13:58:14 -05:00
LABELS "log"
TIMEOUT 60
PASS_REGEX "user.log"
2024-10-15 11:20:40 -04:00
FAIL_REGEX "No such file or directory|not found|ROCPROFSYS_ABORT_FAIL_REGEX" )
2022-09-21 13:58:14 -05:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-help
TARGET rocprofiler-systems-avail
2022-03-07 20:40:48 -06:00
ARGS --help
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-04-05 00:24:34 -05:00
TIMEOUT 45
2022-04-25 17:00:52 -05:00
PASS_REGEX
2024-10-15 11:20:40 -04:00
".*\\\[rocprof-sys-avail\\\] Usage:.*\\\[DEBUG OPTIONS\\\].*\\\[INFO OPTIONS\\\].*\\\[FILTER OPTIONS\\\].*\\\[COLUMN OPTIONS\\\].*\\\[DISPLAY OPTIONS\\\].*\\\[OUTPUT OPTIONS\\\].*"
2022-03-07 20:40:48 -06:00
)
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-all
TARGET rocprofiler-systems-avail
2022-07-27 06:36:52 -05:00
ARGS --all
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-07-27 06:36:52 -05:00
TIMEOUT 45 )
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-all-expand-keys
TARGET rocprofiler-systems-avail
2022-11-13 10:42:14 -06:00
ARGS --all --expand-keys
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-11-13 10:42:14 -06:00
TIMEOUT 45
2024-10-15 11:20:40 -04:00
FAIL_REGEX "%[a-zA-Z_]%|ROCPROFSYS_ABORT_FAIL_REGEX" )
2022-11-13 10:42:14 -06:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-all-only-available-alphabetical
TARGET rocprofiler-systems-avail
2022-11-13 10:42:14 -06:00
ARGS --all --available --alphabetical --debug --output
2024-10-15 11:20:40 -04:00
${ CMAKE_CURRENT_BINARY_DIR } /rocprof-sys-avail-all-only-available-alphabetical.log
LABELS "rocprofiler-systems-avail"
2022-11-13 10:42:14 -06:00
TIMEOUT 45
PROPERTIES
ATTACHED_FILES
2024-10-15 11:20:40 -04:00
${ CMAKE_CURRENT_BINARY_DIR } /rocprof-sys-avail-all-only-available-alphabetical.log )
2022-11-13 10:42:14 -06:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-all-csv
TARGET rocprofiler-systems-avail
2022-06-06 23:23:40 -05:00
ARGS --all --csv --csv-separator "#"
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-06-06 23:23:40 -05:00
TIMEOUT 45
PASS_REGEX
2023-03-30 15:06:29 -05:00
"COMPONENT#AVAILABLE#VALUE_TYPE#STRING_IDS#FILENAME#DESCRIPTION#CATEGORY#.*ENVIRONMENT VARIABLE#VALUE#DATA TYPE#DESCRIPTION#CATEGORIES#.*HARDWARE COUNTER#DEVICE#AVAILABLE#DESCRIPTION#"
2022-06-06 23:23:40 -05:00
)
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-filter-wall-clock-available
TARGET rocprofiler-systems-avail
2022-03-07 20:40:48 -06:00
ARGS -r wall_clock -C --available
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-04-05 00:24:34 -05:00
TIMEOUT 45
2022-04-25 17:00:52 -05:00
PASS_REGEX
2024-01-10 20:00:46 -06:00
"\\\|[-]+\\\|\n\\\|[ ]+COMPONENT[ ]+\\\|\n\\\|[-]+\\\|\n\\\| (wall_clock)[ ]+\\\|\n\\\|[-]+\\\|"
2022-03-07 20:40:48 -06:00
)
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-category-filter-rocprofiler-systems
TARGET rocprofiler-systems-avail
ARGS --categories settings::rocprofsys --brief
LABELS "rocprofiler-systems-avail"
2022-04-05 00:24:34 -05:00
TIMEOUT 45
2024-10-15 11:20:40 -04:00
PASS_REGEX "ROCPROFSYS_(SETTINGS_DESC|OUTPUT_FILE|OUTPUT_PREFIX)"
2022-04-25 17:00:52 -05:00
FAIL_REGEX
2024-10-15 11:20:40 -04:00
"ROCPROFSYS_(ADD_SECONDARY|SCIENTIFIC|PRECISION|MEMORY_PRECISION|TIMING_PRECISION)|ROCPROFSYS_ABORT_FAIL_REGEX"
2022-03-07 20:40:48 -06:00
)
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-category-filter-timemory
TARGET rocprofiler-systems-avail
2022-08-03 12:13:00 -05:00
ARGS --categories settings::timemory --brief --advanced
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-04-05 00:24:34 -05:00
TIMEOUT 45
2022-04-25 17:00:52 -05:00
PASS_REGEX
2024-10-15 11:20:40 -04:00
"ROCPROFSYS_(ADD_SECONDARY|SCIENTIFIC|PRECISION|MEMORY_PRECISION|TIMING_PRECISION)"
FAIL_REGEX "ROCPROFSYS_(SETTINGS_DESC|OUTPUT_FILE)|ROCPROFSYS_ABORT_FAIL_REGEX" )
2022-06-06 23:23:40 -05:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-regex-negation
TARGET rocprofiler-systems-avail
2022-06-06 23:23:40 -05:00
ARGS -R
2024-10-15 11:20:40 -04:00
rocprofsys
2022-06-06 23:23:40 -05:00
~timemory
-r
_P
~PERFETTO
2022-07-22 14:17:27 -05:00
~PROCESS_SAMPLING
2023-01-24 18:53:23 -06:00
~KOKKOSP
2022-06-06 23:23:40 -05:00
--csv
--brief
2022-08-03 12:13:00 -05:00
--advanced
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-06-06 23:23:40 -05:00
TIMEOUT 45
2022-08-31 01:24:31 -05:00
PASS_REGEX
2024-10-15 11:20:40 -04:00
"ENVIRONMENT VARIABLE,[ \n]+ROCPROFSYS_THREAD_POOL_SIZE,[ \n]+ROCPROFSYS_USE_PID,[ \n]+"
FAIL_REGEX "ROCPROFSYS_TRACE|ROCPROFSYS_ABORT_FAIL_REGEX" )
2022-06-28 01:36:04 -05:00
2024-10-15 11:20:40 -04:00
string (
REPLACE
"+" "\\\+" _AVAIL_CFG_PATH
"${PROJECT_BINARY_DIR}/rocprof-sys-tests-output/rocprof-sys-avail/rocprof-sys-" )
2022-11-13 10:42:14 -06:00
# use of TWD == Test Working Directory (added by function)
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-write-config
TARGET rocprofiler-systems-avail
2022-11-13 10:42:14 -06:00
ARGS -G
2024-10-15 11:20:40 -04:00
%env{TWD}%/rocprof-sys-tests-output/rocprof-sys-avail/rocprof-sys-test.cfg
2022-11-13 10:42:14 -06:00
-F
txt
json
xml
--force
--all
-c
2024-10-15 11:20:40 -04:00
rocprofsys
2022-06-28 01:36:04 -05:00
TIMEOUT 45
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-06-28 01:36:04 -05:00
PASS_REGEX
"Outputting JSON configuration file '${_AVAIL_CFG_PATH}test\\\.json'(.*)Outputting XML configuration file '${_AVAIL_CFG_PATH}test\\\.xml'(.*)Outputting text configuration file '${_AVAIL_CFG_PATH}test\\\.cfg'(.*)"
)
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-write-config-tweak
TARGET rocprofiler-systems-avail
ARGS -G %env{TWD}%/rocprof-sys-tests-output/rocprof-sys-avail/rocprof-sys-tweak.cfg -F
txt json xml --force
2022-06-28 01:36:04 -05:00
TIMEOUT 45
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
ENVIRONMENT "ROCPROFSYS_TRACE=OFF;ROCPROFSYS_PROFILE=ON"
2022-06-28 01:36:04 -05:00
PASS_REGEX
"Outputting JSON configuration file '${_AVAIL_CFG_PATH}tweak\\\.json'(.*)Outputting XML configuration file '${_AVAIL_CFG_PATH}tweak\\\.xml'(.*)Outputting text configuration file '${_AVAIL_CFG_PATH}tweak\\\.cfg'(.*)"
)
2022-11-13 10:42:14 -06:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-list-keys
TARGET rocprofiler-systems-avail
2022-11-13 10:42:14 -06:00
ARGS --list-keys --expand-keys
TIMEOUT 45
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-11-13 10:42:14 -06:00
PASS_REGEX "Output Keys:\n(.*)%argv%(.*)%argv_hash%" )
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-list-keys-markdown
TARGET rocprofiler-systems-avail
2022-11-13 10:42:14 -06:00
ARGS --list-keys --expand-keys --markdown
TIMEOUT 45
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail;markdown"
2022-11-13 10:42:14 -06:00
PASS_REGEX "(.*)`%argv%`(.*)`%argv_hash%`" )
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-list-categories
TARGET rocprofiler-systems-avail
2022-11-13 10:42:14 -06:00
ARGS --list-categories
TIMEOUT 45
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-11-13 10:42:14 -06:00
PASS_REGEX " component::(.*) hw_counters::(.*) settings::" )
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-avail-core-categories
TARGET rocprofiler-systems-avail
2022-11-13 10:42:14 -06:00
ARGS -c core
TIMEOUT 45
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-avail"
2022-11-13 10:42:14 -06:00
PASS_REGEX
2024-10-15 11:20:40 -04:00
"ROCPROFSYS_CONFIG_FILE(.*)ROCPROFSYS_ENABLED(.*)ROCPROFSYS_SUPPRESS_CONFIG(.*)ROCPROFSYS_SUPPRESS_PARSING(.*)ROCPROFSYS_VERBOSE"
2022-11-13 10:42:14 -06:00
)
2023-03-14 19:48:29 -05:00
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-run-help
TARGET rocprofiler-systems-run
2023-03-14 19:48:29 -05:00
ARGS --help
TIMEOUT 45
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-run" )
2023-03-14 19:48:29 -05:00
2024-10-15 11:20:40 -04:00
file ( MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/rocprof-sys-tests-config" )
2023-03-14 19:48:29 -05:00
file (
2024-10-15 11:20:40 -04:00
WRITE "${PROJECT_BINARY_DIR}/rocprof-sys-tests-config/empty.cfg"
2023-03-14 19:48:29 -05:00
"
#
# empty config file
#
" )
add_executable ( sleeper ${ CMAKE_CURRENT_SOURCE_DIR } /sleeper.cpp )
set_target_properties (
sleeper PROPERTIES BUILD_TYPE RelWithDebInfo RUNTIME_OUTPUT_DIRECTORY
${ PROJECT_BINARY_DIR } /bin/testing )
2024-10-15 11:20:40 -04:00
rocprofiler_systems_add_bin_test (
NAME rocprofiler-systems-run-args
TARGET rocprofiler-systems-run
2023-03-14 19:48:29 -05:00
ARGS --monochrome
--debug=false
-v
1
-c
2024-10-15 11:20:40 -04:00
%env{TWD}%/rocprof-sys-tests-config/empty.cfg
2023-03-14 19:48:29 -05:00
-o
2024-10-15 11:20:40 -04:00
rocprof-sys-tests-output
rocprofiler-systems-run-args-output/
2023-03-14 19:48:29 -05:00
-TPHD
-S
cputime
realtime
--trace-wait=1.0e-12
--trace-duration=5.0
--wait=1.0
--duration=3.0
--trace-file=perfetto-run-args-trace.proto
--trace-buffer-size=100
--trace-fill-policy=ring_buffer
--profile-format
console
json
text
--process-freq
1000
--process-wait
0.0
--process-duration
10
--cpus
0-4
--gpus
0
-f
1000
--sampling-wait
1.0
--sampling-duration
10
-t
0-3
--sample-cputime
1000
1.0
0-3
--sample-realtime
10
0.5
0-3
-I
all
-E
mutex-locks
rw-locks
spin-locks
-C
perf::INSTRUCTIONS
--inlines
--hsa-interrupt
0
--use-causal=false
--use-kokkosp
--num-threads-hint=4
--sampling-allocator-size=32
--ci
--dl-verbose=3
--perfetto-annotations=off
--kokkosp-kernel-logger
--kokkosp-name-length-max=1024
--kokkosp-prefix= "[kokkos]"
--tmpdir
2024-10-15 11:20:40 -04:00
${ CMAKE_BINARY_DIR } /rocprof-sys-tests-config/tmpdir
2023-03-14 19:48:29 -05:00
--perfetto-backend
inprocess
--use-pid
false
--time-output
off
--thread-pool-size
0
--timemory-components
wall_clock
cpu_clock
peak_rss
page_rss
2023-04-13 02:14:35 -05:00
--fork
2023-03-14 19:48:29 -05:00
--
$< TARGET_FILE:sleeper >
5
TIMEOUT 45
2024-10-15 11:20:40 -04:00
LABELS "rocprofiler-systems-run" )