From a11321867267b9e7f1ec2ce30faa4b45a56fd051 Mon Sep 17 00:00:00 2001 From: Ammar ELWazir Date: Tue, 2 May 2023 18:12:00 +0000 Subject: [PATCH] SWDEV-340925 & ROCMOPS-4997: Fixing Tests package for roctracer Change-Id: I9913e1df86398ef79a5afcf4b89b5a132d61422c [ROCm/roctracer commit: 2a9595bc8f00a171c955a55b7d2ae9ff7a6efbd9] --- projects/roctracer/CMakeLists.txt | 2 +- projects/roctracer/script/check_trace.py | 2 +- projects/roctracer/test/CMakeLists.txt | 23 ++++++++++++++++++----- projects/roctracer/test/run.sh | 22 ++++++++++++++++------ 4 files changed, 36 insertions(+), 13 deletions(-) diff --git a/projects/roctracer/CMakeLists.txt b/projects/roctracer/CMakeLists.txt index 0258262ff2..d6aebaef94 100644 --- a/projects/roctracer/CMakeLists.txt +++ b/projects/roctracer/CMakeLists.txt @@ -167,7 +167,7 @@ if(ENABLE_ASAN_PACKAGING) # ASAN Package requires asan component with only libraries and license file set(CPACK_COMPONENTS_ALL asan) else() - set(CPACK_COMPONENTS_ALL runtime dev) + set(CPACK_COMPONENTS_ALL runtime dev tests) endif() include(CPack) diff --git a/projects/roctracer/script/check_trace.py b/projects/roctracer/script/check_trace.py index 062279a403..dca922d8f0 100755 --- a/projects/roctracer/script/check_trace.py +++ b/projects/roctracer/script/check_trace.py @@ -154,7 +154,7 @@ def check_trace_status(tracename, verbose, check_trace_flag): return 0 trace = 'test/golden_traces/' + tracename + '.txt' - rtrace = 'test/out/' + tracename + '.out' + rtrace = '/tmp/test/out/' + tracename + '.out' if os.path.basename(tracename) in trace2info.keys(): (trace_level, no_events_cnt, events2ignore, events2chkcnt, events2chkord, events2ch) = trace2info[os.path.basename(tracename)] trace_level = trace_level.rstrip('\n') diff --git a/projects/roctracer/test/CMakeLists.txt b/projects/roctracer/test/CMakeLists.txt index c7c5903b88..f8c5e8238d 100644 --- a/projects/roctracer/test/CMakeLists.txt +++ b/projects/roctracer/test/CMakeLists.txt @@ -43,6 +43,8 @@ add_custom_target(check COMMAND ${PROJECT_BINARY_DIR}/run.sh DEPENDS mytest) ## Build MatrixTranspose set_source_files_properties(hip/MatrixTranspose.cpp PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1) hip_add_executable(MatrixTranspose hip/MatrixTranspose.cpp) +## Adding generated build-id as hip_add_executable doesn't generate automatically +target_link_options(MatrixTranspose PRIVATE "-Wl,--build-id=md5") target_include_directories(MatrixTranspose PRIVATE ${PROJECT_SOURCE_DIR}/inc) target_link_libraries(MatrixTranspose PRIVATE roctracer roctx) add_dependencies(mytest MatrixTranspose) @@ -51,6 +53,8 @@ add_dependencies(mytest MatrixTranspose) set_source_files_properties(app/MatrixTranspose_test.cpp PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1) function(build_matrix_transpose_test OUTPUT_FILE DEFINITIONS) hip_add_executable(${OUTPUT_FILE} app/MatrixTranspose_test.cpp) + ## Adding generated build-id as hip_add_executable doesn't generate automatically + target_link_options(${OUTPUT_FILE} PRIVATE "-Wl,--build-id=md5") target_compile_definitions(${OUTPUT_FILE} PRIVATE ITERATIONS=100 HIP_TEST=1 ${DEFINITIONS}) target_include_directories(${OUTPUT_FILE} PRIVATE ${PROJECT_SOURCE_DIR}/inc) target_link_libraries(${OUTPUT_FILE} PRIVATE roctracer roctx) @@ -65,6 +69,8 @@ build_matrix_transpose_test(MatrixTranspose_mgpu MGPU_TEST=1) add_custom_command(OUTPUT MatrixTranspose.c COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/app/MatrixTranspose_test.cpp MatrixTranspose.c) hip_add_executable(MatrixTranspose_ctest MatrixTranspose.c) +## Adding generated build-id as hip_add_executable doesn't generate automatically +target_link_options(MatrixTranspose_ctest PRIVATE "-Wl,--build-id=md5") target_compile_definitions(MatrixTranspose_ctest PRIVATE HIP_TEST=0 __HIP_PLATFORM_HCC__) target_include_directories(MatrixTranspose_ctest PRIVATE ${PROJECT_SOURCE_DIR}/inc) target_link_libraries(MatrixTranspose_ctest PRIVATE roctracer roctx) @@ -75,6 +81,7 @@ add_library(codeobj_test SHARED app/codeobj_test.cpp) target_include_directories(codeobj_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/inc) target_link_libraries(codeobj_test roctracer) add_dependencies(mytest codeobj_test) +install(TARGETS codeobj_test DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/test COMPONENT tests) ## Build the hsa (standalone) copy test function(generate_hsaco TARGET_ID INPUT_FILE OUTPUT_FILE) @@ -87,7 +94,7 @@ function(generate_hsaco TARGET_ID INPUT_FILE OUTPUT_FILE) DEPENDS ${INPUT_FILE} clang COMMENT "Building ${OUTPUT_FILE}..." VERBATIM) - install(FILES ${PROJECT_BINARY_DIR}/${OUTPUT_FILE} DESTINATION test/${PROJECT_NAME} COMPONENT tests) + install(FILES ${PROJECT_BINARY_DIR}/${OUTPUT_FILE} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME} COMPONENT tests) set(HSACO_TARGET_LIST ${HSACO_TARGET_LIST} ${PROJECT_BINARY_DIR}/${OUTPUT_FILE} PARENT_SCOPE) endfunction(generate_hsaco) @@ -105,6 +112,8 @@ add_dependencies(mytest copy) ## Build the ROCTX test set_source_files_properties(app/roctx_test.cpp PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1) hip_add_executable(roctx_test app/roctx_test.cpp) +## Adding generated build-id as hip_add_executable doesn't generate automatically +target_link_options(roctx_test PRIVATE "-Wl,--build-id=md5") target_link_libraries(roctx_test Threads::Threads roctx) add_dependencies(mytest roctx_test) @@ -132,12 +141,16 @@ add_dependencies(mytest memory_pool) ## Build the activity_and_callback test set_source_files_properties(directed/activity_and_callback.cpp PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1) hip_add_executable(activity_and_callback directed/activity_and_callback.cpp) +## Adding generated build-id as hip_add_executable doesn't generate automatically +target_link_options(activity_and_callback PRIVATE "-Wl,--build-id=md5") target_link_libraries(activity_and_callback roctracer) add_dependencies(mytest activity_and_callback) ## Build the multi_pool_activities test set_source_files_properties(directed/multi_pool_activities.cpp PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1) hip_add_executable(multi_pool_activities directed/multi_pool_activities.cpp) +## Adding generated build-id as hip_add_executable doesn't generate automatically +target_link_options(multi_pool_activities PRIVATE "-Wl,--build-id=md5") target_link_libraries(multi_pool_activities roctracer) add_dependencies(mytest multi_pool_activities) @@ -150,16 +163,16 @@ add_dependencies(mytest dlopen) ## Copy the golden traces and test scripts configure_file(run.sh ${PROJECT_BINARY_DIR} COPYONLY) execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink run.sh ${PROJECT_BINARY_DIR}/run_ci.sh) -install(PROGRAMS ${PROJECT_BINARY_DIR}/run.sh DESTINATION test/${PROJECT_NAME} COMPONENT tests) +install(PROGRAMS ${PROJECT_BINARY_DIR}/run.sh RENAME "run_tests.sh" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME} COMPONENT tests) configure_file(${PROJECT_SOURCE_DIR}/script/check_trace.py ${PROJECT_BINARY_DIR}/test/check_trace.py COPYONLY) -install(PROGRAMS ${PROJECT_BINARY_DIR}/test/check_trace.py DESTINATION test/${PROJECT_NAME}/test COMPONENT tests) +install(PROGRAMS ${PROJECT_BINARY_DIR}/test/check_trace.py DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/test COMPONENT tests) file(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "golden_traces/tests_trace_cmp_levels.txt" "golden_traces/*_trace.txt") foreach(file ${files}) configure_file(${file} ${PROJECT_BINARY_DIR}/test/${file} COPYONLY) endforeach() -install(DIRECTORY ${PROJECT_BINARY_DIR}/test/golden_traces DESTINATION test/${PROJECT_NAME}/test COMPONENT tests) +install(DIRECTORY ${PROJECT_BINARY_DIR}/test/golden_traces DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/test COMPONENT tests) # install all executables set(all_executables) @@ -170,4 +183,4 @@ foreach(target IN LISTS all_targets) list(APPEND all_executables ${target}) endif() endforeach() -install(TARGETS ${all_executables} DESTINATION test/${PROJECT_NAME}/test COMPONENT tests) +install(TARGETS ${all_executables} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/test COMPONENT tests) diff --git a/projects/roctracer/test/run.sh b/projects/roctracer/test/run.sh index 7cd1cbd5d2..9cb5bb5158 100755 --- a/projects/roctracer/test/run.sh +++ b/projects/roctracer/test/run.sh @@ -27,6 +27,12 @@ BIN_NAME=`basename $0` BIN_DIR=`dirname $0` cd $BIN_DIR +if [ -z "$ROCTRACER_LIB_PATH" ] ; then + if test -f "${BIN_DIR}/../../lib/libroctracer64.so" ; then + ROCTRACER_LIB_PATH="${BIN_DIR}/../../lib" + fi +fi + # enable tools load failure reporting export HSA_TOOLS_REPORT_LOAD_FAILURE=1 # paths to ROC profiler and other libraries @@ -38,7 +44,11 @@ if [ -z "$ROCTRACER_LIB_PATH" ] ; then ROCTRACER_LIB_PATH="." fi if [ -z "$ROCTRACER_TOOL_PATH" ] ; then - ROCTRACER_TOOL_PATH="." + if test -f "${BIN_DIR}/../../lib/roctracer/libroctracer_tool.so" ; then + ROCTRACER_TOOL_PATH="${BIN_DIR}/../../lib/roctracer" + else + ROCTRACER_TOOL_PATH="." + fi fi # test filter input @@ -79,15 +89,15 @@ eval_test() { if [ $test_filter = -1 -o $test_filter = $test_number ] ; then echo "test $test_number: $test_name \"$label\"" echo "CMD: \"$cmdline\"" - mkdir -p test/out + mkdir -p /tmp/test/out test_runnum=$((test_runnum + 1)) - eval "$cmdline" 1>test/out/$test_name.out 2>test/out/$test_name.err + eval "$cmdline" 1>/tmp/test/out/$test_name.out 2>/tmp/test/out/$test_name.err is_failed=$? if [ $is_failed != 0 ] ; then echo "--- stdout ---" - cat test/out/$test_name.out + cat /tmp/test/out/$test_name.out echo "--- stderr ---" - cat test/out/$test_name.err + cat /tmp/test/out/$test_name.err fi if [ $is_failed = 0 ] ; then python3 ./test/check_trace.py -in $test_name -ck $check_trace_flag @@ -169,7 +179,7 @@ unset ROCP_INPUT # Check that the tracer tool can be unloaded and then reloaded. eval_test "Load/Unload/Reload the tracer tool" ./test/load_unload_reload_test load_unload_reload_trace -export LD_PRELOAD=./test/libcodeobj_test.so +export LD_PRELOAD=${BIN_DIR}/test/libcodeobj_test.so eval_test "tool tracer codeobj" ./test/MatrixTranspose code_obj_trace unset LD_PRELOAD