[rocprofiler-sdk] Install unit tests and helper functions for integration tests (#921)
* [rocprofiler-sdk] Install unit tests and helper functions for integration tests * Fix rocprofiler-sdk-tests-target export * Fix handling of cmake policy CMP0174 * Remove -vv from new pytest.ini files * add unit tests and integration tests. * add path to ci workflow. * misc. fixes. * pc sampling tests. * bug fixes. * pc sampling tests fix. * misc. * Update CMakeLists.txt * Update rocprofiler_config_install_tests.cmake, correct license name * fix units tests install issues. * fix counters_def file path. * fix bug, arg shifting. * vendor pytest-cmake. * cmake config fix. missing endfunction() * disable tests, 1.rocprofv3-trace-hip-libs. 2.kernel-tracing. 3.external_correlation 4.rocpd. * disable buffered-tracing test and remove pytest-cmake from requirements.txt. * disable hip-graph-tracing test. * fix building standalone tests to load rocprofiler-sdk cmake package first and then find rocprofiler_sdk_pytest module. * addressed comments: 1.add local bin path to code cov workflow. 2.add to cmake prefix path local bin. 3.use ROCPROFILER_MEMCHECK_PRELOAD_ENV_VALUE 4.misc. fix * enabled back tests api_buffered, external_correlation_id, hip-graph, kernel-tracing, rocpd, tracing-hip-in-libraries. and misc fixes(formating, extra fixtures for agent-index tests.) * cpack to use llvm bin for .hsaco debug symbols. * psdb tests fixes. * EOL. * misc. fixes and Disable api_buffered_tracing, external_correlation_id, hip-graph-tracing, kernel-tracing, rocpd, summary, tracing-hip-libraries, tracing-plus-counter-collection. * fix incorrect cmakelists file. * strip smallkernel.bin * format. * revert disabled tests commit. * misc. fix in counter tests. * misc. * search codeobj unit test assets in curr bin and install bin. * refactor newly added rocpd tests. * modify tests for newly added hip-host-tracing. * add LD LIB path to units, psdb is failing due to libs not being found. --------- Co-authored-by: Venkateshwar Reddy Kandula <venkateshwar.kandula1306@gmail.com> Co-authored-by: Venkateshwar Reddy Kandula <Venkateshwarreddy.Kandula@amd.com> Co-authored-by: JeniferC99 <150404595+JeniferC99@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
66ea1cdff2
commit
a2288eb50b
@@ -2,7 +2,14 @@
|
||||
# Waitcnt ISA tests
|
||||
#
|
||||
|
||||
project(rocprofiler-sdk-tests-att-decoder-waitcnt LANGUAGES C CXX)
|
||||
|
||||
include(GoogleTest)
|
||||
|
||||
set(waitcnt_sources att_decoder_waitcnt_test.cpp)
|
||||
|
||||
add_executable(att-decoder-waitcnt-test)
|
||||
target_sources(att-decoder-waitcnt-test PRIVATE ${waitcnt_sources})
|
||||
target_link_libraries(
|
||||
att-decoder-waitcnt-test
|
||||
PRIVATE rocprofiler-sdk::rocprofiler-sdk-att-parser
|
||||
@@ -12,12 +19,11 @@ target_link_libraries(
|
||||
rocprofiler-sdk::rocprofiler-sdk-static-library
|
||||
GTest::gtest
|
||||
GTest::gtest_main)
|
||||
target_sources(att-decoder-waitcnt-test PRIVATE att_decoder_waitcnt_test.cpp)
|
||||
|
||||
gtest_add_tests(
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET att-decoder-waitcnt-test
|
||||
SOURCES att_decoder_waitcnt_test.cpp
|
||||
TEST_LIST att-decoder-waitcnt-test_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
set_tests_properties(${att-decoder-waitcnt-test_TESTS} PROPERTIES TIMEOUT 10 LABELS
|
||||
"unittests")
|
||||
SOURCES ${waitcnt_sources}
|
||||
TIMEOUT 10
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
)
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
rocprofiler_deactivate_clang_tidy()
|
||||
|
||||
project(rocprofiler-sdk-unit-tests-aql LANGUAGES C CXX)
|
||||
|
||||
include(GoogleTest)
|
||||
|
||||
set(ROCPROFILER_LIB_AQL_TEST_SOURCES "aql_test.cpp" "helpers.cpp")
|
||||
set(ROCPROFILER_LIB_AQL_TEST_SOURCES aql_test.cpp helpers.cpp)
|
||||
|
||||
add_executable(aql-test)
|
||||
|
||||
target_sources(aql-test PRIVATE ${ROCPROFILER_LIB_AQL_TEST_SOURCES})
|
||||
|
||||
target_link_libraries(
|
||||
aql-test
|
||||
PRIVATE rocprofiler-sdk::counter-test-constants
|
||||
@@ -19,12 +19,14 @@ target_link_libraries(
|
||||
GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
set(_ROCPROFILER_SHARE_DIR
|
||||
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}")
|
||||
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET aql-test
|
||||
SOURCES ${ROCPROFILER_LIB_AQL_TEST_SOURCES}
|
||||
TEST_LIST aql-test_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${aql-test_TESTS} PROPERTIES TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
TIMEOUT 45
|
||||
ENVIRONMENT
|
||||
"ROCPROFILER_METRICS_PATH=${_ROCPROFILER_SHARE_DIR}"
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
@@ -261,15 +261,35 @@ findViaInstallPath(const std::string& filename)
|
||||
}
|
||||
|
||||
std::string
|
||||
findViaEnvironment(const std::string& filename)
|
||||
locateMetricsFile(std::string_view name)
|
||||
{
|
||||
if(const char* metrics_path = nullptr; (metrics_path = getenv("ROCPROFILER_METRICS_PATH")))
|
||||
namespace fs = common::filesystem;
|
||||
|
||||
// 1) Try env var
|
||||
if(const char* env = std::getenv("ROCPROFILER_METRICS_PATH"))
|
||||
{
|
||||
ROCP_INFO << filename << " is being looked up via env variable ROCPROFILER_METRICS_PATH";
|
||||
return common::filesystem::path{std::string{metrics_path}} / filename;
|
||||
fs::path candidate = fs::path{env} / std::string{name};
|
||||
if(fs::exists(candidate))
|
||||
{
|
||||
ROCP_INFO << name << " found via ROCPROFILER_METRICS_PATH: " << candidate.string();
|
||||
return candidate.string();
|
||||
}
|
||||
ROCP_WARNING << name << " not found at ROCPROFILER_METRICS_PATH (" << env
|
||||
<< "). Falling back to install path.";
|
||||
}
|
||||
// No environment variable, lookup via install path
|
||||
return findViaInstallPath(filename);
|
||||
|
||||
// 2) Fall back to install path
|
||||
auto install_candidate = findViaInstallPath(std::string{name});
|
||||
if(fs::exists(install_candidate))
|
||||
{
|
||||
ROCP_INFO << name << " found via install path: " << install_candidate;
|
||||
return install_candidate;
|
||||
}
|
||||
|
||||
// 3) Neither found -> fatal
|
||||
ROCP_FATAL << "Metric file '" << name << "' not found.\n"
|
||||
<< " Tried: ROCPROFILER_METRICS_PATH/" << name << " and " << install_candidate;
|
||||
return {};
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -298,7 +318,7 @@ loadMetrics(bool reload, const std::optional<ArchMetric> add_metric)
|
||||
}
|
||||
|
||||
auto reload_func = [&]() {
|
||||
auto counters_path = findViaEnvironment("counter_defs.yaml");
|
||||
auto counters_path = locateMetricsFile("counter_defs.yaml");
|
||||
ROCP_FATAL_IF(!common::filesystem::exists(counters_path))
|
||||
<< "metric xml file '" << counters_path << "' does not exist";
|
||||
return std::make_shared<counter_metrics_t>(loadYAML(counters_path, add_metric));
|
||||
|
||||
+10
-8
@@ -14,13 +14,15 @@ target_link_libraries(
|
||||
rocprofiler-sdk::rocprofiler-sdk-static-library GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
set(_ROCPROFILER_SHARE_DIR
|
||||
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}")
|
||||
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET parser-test
|
||||
SOURCES ${ROCPROFILER_LIB_PARSER_TEST_SOURCES}
|
||||
TEST_LIST parser-tests_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${parser-tests_TESTS}
|
||||
PROPERTIES TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
TIMEOUT 45
|
||||
LABELS unittests
|
||||
ENVIRONMENT
|
||||
"ROCPROFILER_METRICS_PATH=${_ROCPROFILER_SHARE_DIR}"
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
rocprofiler_deactivate_clang_tidy()
|
||||
|
||||
project(rocprofiler-sdk-unit-tests-counters LANGUAGES C CXX)
|
||||
|
||||
include(GoogleTest)
|
||||
|
||||
find_program(
|
||||
@@ -18,13 +20,10 @@ function(generate_hsaco TARGET_ID INPUT_FILE OUTPUT_FILE)
|
||||
add_custom_command(
|
||||
OUTPUT ${PROJECT_BINARY_DIR}/${OUTPUT_FILE}
|
||||
COMMAND ${amdclangpp_EXECUTABLE} ${CLANG_ARG_LIST}
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${PROJECT_BINARY_DIR}/source/lib/rocprofiler-sdk/counters/tests/${OUTPUT_FILE}
|
||||
${CMAKE_BINARY_DIR}/bin/${OUTPUT_FILE}
|
||||
OUTPUT ${CMAKE_BINARY_DIR}/bin/${OUTPUT_FILE}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/bin/${OUTPUT_FILE}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/${OUTPUT_FILE}
|
||||
${CMAKE_BINARY_DIR}/bin/${OUTPUT_FILE}
|
||||
DEPENDS ${INPUT_FILE}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Building ${OUTPUT_FILE}...")
|
||||
set(HSACO_TARGET_LIST
|
||||
${HSACO_TARGET_LIST} ${PROJECT_BINARY_DIR}/${OUTPUT_FILE}
|
||||
@@ -39,6 +38,11 @@ endforeach()
|
||||
|
||||
add_custom_target(agent_hasco_targets DEPENDS ${HSACO_TARGET_LIST})
|
||||
|
||||
install(
|
||||
FILES ${HSACO_TARGET_LIST}
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}/tests/unit-tests/bin
|
||||
COMPONENT tests)
|
||||
|
||||
add_library(counter_test_constants OBJECT)
|
||||
add_library(rocprofiler-sdk::counter-test-constants ALIAS counter_test_constants)
|
||||
set(ROCPROFILER_LIB_COUNTER_TEST_CONSTANTS_SOURCES hsa_tables.cpp)
|
||||
@@ -60,15 +64,15 @@ set(ROCPROFILER_LIB_COUNTER_TEST_SOURCES
|
||||
device_counting.cpp)
|
||||
set(ROCPROFILER_LIB_COUNTER_TEST_HEADERS code_object_loader.hpp device_counting.hpp)
|
||||
|
||||
add_executable(counter-test)
|
||||
add_executable(counter-tests)
|
||||
|
||||
target_sources(counter-test PRIVATE ${ROCPROFILER_LIB_COUNTER_TEST_SOURCES}
|
||||
${ROCPROFILER_LIB_COUNTER_TEST_HEADERS})
|
||||
target_sources(counter-tests PRIVATE ${ROCPROFILER_LIB_COUNTER_TEST_SOURCES}
|
||||
${ROCPROFILER_LIB_COUNTER_TEST_HEADERS})
|
||||
|
||||
add_dependencies(counter-test agent_hasco_targets)
|
||||
add_dependencies(counter-tests agent_hasco_targets)
|
||||
|
||||
target_link_libraries(
|
||||
counter-test
|
||||
counter-tests
|
||||
PRIVATE rocprofiler-sdk::counter-test-constants
|
||||
rocprofiler-sdk::rocprofiler-sdk-hsa-runtime
|
||||
rocprofiler-sdk::rocprofiler-sdk-hip
|
||||
@@ -77,48 +81,44 @@ target_link_libraries(
|
||||
GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
TARGET counter-test
|
||||
SOURCES ${ROCPROFILER_LIB_COUNTER_TEST_SOURCES}
|
||||
TEST_LIST counter-tests_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${counter-tests_TESTS}
|
||||
PROPERTIES
|
||||
TIMEOUT
|
||||
45
|
||||
LABELS
|
||||
"unittests"
|
||||
FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}"
|
||||
SKIP_REGULAR_EXPRESSION
|
||||
"Running non-intercept test(.*)could not be locked for profiling due to lack of permissions.*"
|
||||
)
|
||||
set(_ROCPROFILER_SHARE_DIR
|
||||
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}")
|
||||
|
||||
# unstable counter collection test: Generates HW exception leading to GPU hang or memory
|
||||
# access fault
|
||||
set_tests_properties(
|
||||
device_counting_service_test.sync_counters device_counting_service_test.async_counters
|
||||
PROPERTIES DISABLED "${ROCPROFILER_DISABLE_UNSTABLE_CTESTS}")
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET counter-tests
|
||||
SOURCES ${ROCPROFILER_LIB_COUNTER_TEST_SOURCES}
|
||||
TIMEOUT 45
|
||||
ENVIRONMENT
|
||||
"ROCPROFILER_METRICS_PATH=${_ROCPROFILER_SHARE_DIR}"
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}"
|
||||
SKIP_REGULAR_EXPRESSION
|
||||
"Running non-intercept test(.*)could not be locked for profiling due to lack of permissions.*"
|
||||
DISABLE_TESTS
|
||||
device_counting_service_test.sync_counters
|
||||
device_counting_service_test.async_counters
|
||||
device_counting_service_test.sync_gpu_util_verify
|
||||
device_counting_service_test.sync_sq_waves_verify
|
||||
device_counting_service_test.sync_sq_waves_verify_non_intercept
|
||||
device_counting_service_test.raw_sq_waves_verify
|
||||
device_counting_service_test.sync_grbm_verify)
|
||||
|
||||
set(ROCPROFILER_LIB_CONSUMER_TEST_SOURCES consumer_test.cpp)
|
||||
|
||||
add_executable(consumer-test)
|
||||
target_sources(consumer-test PRIVATE ${ROCPROFILER_LIB_CONSUMER_TEST_SOURCES})
|
||||
add_executable(consumer-tests)
|
||||
target_sources(consumer-tests PRIVATE ${ROCPROFILER_LIB_CONSUMER_TEST_SOURCES})
|
||||
|
||||
target_link_libraries(
|
||||
consumer-test rocprofiler-sdk::rocprofiler-sdk-hsa-runtime
|
||||
consumer-tests rocprofiler-sdk::rocprofiler-sdk-hsa-runtime
|
||||
rocprofiler-sdk::rocprofiler-sdk-hip rocprofiler-sdk::rocprofiler-sdk-common-library
|
||||
rocprofiler-sdk::rocprofiler-sdk-static-library GTest::gtest GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
TARGET consumer-test
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET consumer-tests
|
||||
SOURCES ${ROCPROFILER_LIB_CONSUMER_TEST_SOURCES}
|
||||
TEST_LIST consumer-tests_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${consumer-tests_TESTS}
|
||||
PROPERTIES TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
TIMEOUT 45
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
@@ -36,13 +36,11 @@ target_link_libraries(
|
||||
rocprofiler-sdk::rocprofiler-sdk-static-library GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET kfd-events-parser
|
||||
SOURCES ${ROCPROFILER_LIB_COUNTER_TEST_SOURCES}
|
||||
TEST_LIST kfd-events-parsers_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${kfd-events-parsers_TESTS}
|
||||
PROPERTIES TIMEOUT 45 LABELS "unittests;kfd-events" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
SOURCES ${ROCPROFILER_LIB_KFD_EVENTS_TEST_SOURCES}
|
||||
TIMEOUT 45
|
||||
LABELS "unittests;kfd-events"
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
+24
-31
@@ -33,16 +33,14 @@ target_link_libraries(
|
||||
rocprofiler-sdk::rocprofiler-sdk-static-library GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET pcs_gfx9_test
|
||||
SOURCES ${ROCPROFILER_LIB_PC_SAMPLING_PARSER_GFX9_TEST_SOURCES}
|
||||
TEST_LIST pcs_gfx9_test_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${pcs_gfx9_test_TESTS}
|
||||
PROPERTIES TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
LABELS "unittests;pc-sampling;gfx9"
|
||||
TIMEOUT 45
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
)
|
||||
|
||||
add_executable(pcs_id_test)
|
||||
|
||||
@@ -55,15 +53,14 @@ target_link_libraries(
|
||||
rocprofiler-sdk::rocprofiler-sdk-static-library GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET pcs_id_test
|
||||
SOURCES ${ROCPROFILER_LIB_PC_SAMPLING_PARSER_ID_TEST_SOURCES}
|
||||
TEST_LIST pcs_id_test_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${pcs_id_test_TESTS} PROPERTIES TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
LABELS "unittests"
|
||||
TIMEOUT 45
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
add_executable(pcs_bench_test)
|
||||
|
||||
@@ -91,16 +88,14 @@ target_link_libraries(
|
||||
rocprofiler-sdk::rocprofiler-sdk-static-library GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET pcs_thread_test
|
||||
SOURCES ${ROCPROFILER_LIB_PC_SAMPLING_PARSER_MULTIGPU_TEST_SOURCES}
|
||||
TEST_LIST pcs_thread_test_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${pcs_thread_test_TESTS}
|
||||
PROPERTIES TIMEOUT 75 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
LABELS "unittests"
|
||||
TIMEOUT 75
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
add_executable(pcs_gfx12_test)
|
||||
|
||||
@@ -114,13 +109,11 @@ target_link_libraries(
|
||||
rocprofiler-sdk::rocprofiler-sdk-static-library GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET pcs_gfx12_test
|
||||
SOURCES ${ROCPROFILER_LIB_PC_SAMPLING_PARSER_GFX12_TEST_SOURCES}
|
||||
TEST_LIST pcs_gfx12_test_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${pcs_gfx12_test_TESTS}
|
||||
PROPERTIES TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
LABELS "unittests"
|
||||
TIMEOUT 45
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
+8
-10
@@ -19,14 +19,12 @@ target_link_libraries(
|
||||
rocprofiler-sdk::rocprofiler-sdk-static-library GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET pcs-test
|
||||
SOURCES ${ROCPROFILER_LIB_COUNTER_TEST_SOURCES}
|
||||
TEST_LIST pcs-tests_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${pcs-tests_TESTS}
|
||||
PROPERTIES TIMEOUT 45 LABELS "unittests;pc-sampling" SKIP_REGULAR_EXPRESSION
|
||||
"PC sampling unavailable" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
SOURCES ${ROCPROFILER_LIB_PC_SAMPLING_TEST_SOURCES}
|
||||
TIMEOUT 45
|
||||
LABELS "unittests;pc-sampling"
|
||||
SKIP_REGULAR_EXPRESSION "PC sampling unavailable"
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
@@ -35,15 +35,15 @@ target_link_libraries(
|
||||
GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET rocprofiler-sdk-lib-tests
|
||||
SOURCES ${rocprofiler_lib_sources}
|
||||
TEST_LIST lib_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${lib_TESTS} PROPERTIES TIMEOUT 30 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
TIMEOUT 30
|
||||
LABELS "unittests"
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
# -------------------------------------------------------------------------------------- #
|
||||
#
|
||||
@@ -68,17 +68,16 @@ target_link_libraries(
|
||||
set_target_properties(rocprofiler-sdk-lib-tests-shared PROPERTIES BUILD_RPATH
|
||||
"\$ORIGIN/../lib")
|
||||
|
||||
gtest_add_tests(
|
||||
TARGET rocprofiler-sdk-lib-tests-shared
|
||||
SOURCES ${rocprofiler_shared_lib_sources}
|
||||
TEST_LIST shared_lib_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set(rocprofiler-sdk-lib-tests-env
|
||||
"LD_LIBRARY_PATH=${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}:$ENV{LD_LIBRARY_PATH}")
|
||||
|
||||
set_tests_properties(
|
||||
${shared_lib_TESTS}
|
||||
PROPERTIES TIMEOUT 120 LABELS "unittests" ENVIRONMENT
|
||||
"${rocprofiler-sdk-lib-tests-env}" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET rocprofiler-sdk-lib-tests-shared
|
||||
SOURCES ${rocprofiler_shared_lib_sources}
|
||||
TEST_LIST shared_lib_TESTS
|
||||
TIMEOUT 120
|
||||
LABELS "unittests"
|
||||
ENVIRONMENT
|
||||
"${rocprofiler-sdk-lib-tests-env}"
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
+10
-7
@@ -19,13 +19,16 @@ target_link_libraries(
|
||||
GTest::gtest_main
|
||||
rocprofiler-sdk::counter-test-constants)
|
||||
|
||||
gtest_add_tests(
|
||||
set(_ROCPROFILER_SHARE_DIR
|
||||
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}")
|
||||
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET thread-trace-packet-test
|
||||
SOURCES ${ROCPROFILER_THREAD_TRACE_TEST_SOURCES}
|
||||
TEST_LIST thread-trace-packet-test_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${thread-trace-packet-test_TESTS}
|
||||
PROPERTIES TIMEOUT 10 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
TIMEOUT 10
|
||||
LABELS "unittests"
|
||||
ENVIRONMENT
|
||||
"ROCPROFILER_METRICS_PATH=${_ROCPROFILER_SHARE_DIR}"
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
FAIL_REGULAR_EXPRESSION "${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
@@ -7,21 +7,17 @@ include(GoogleTest)
|
||||
|
||||
set(buffering_sources buffering-serial.cpp buffering-parallel.cpp buffering-save-load.cpp)
|
||||
|
||||
add_executable(buffering-test)
|
||||
target_sources(buffering-test PRIVATE ${buffering_sources})
|
||||
add_executable(buffering-tests)
|
||||
target_sources(buffering-tests PRIVATE ${buffering_sources})
|
||||
target_link_libraries(
|
||||
buffering-test
|
||||
buffering-tests
|
||||
PRIVATE rocprofiler-sdk::rocprofiler-sdk-headers
|
||||
rocprofiler-sdk::rocprofiler-sdk-common-library GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
TARGET buffering-test
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET buffering-tests
|
||||
SOURCES ${buffering_sources}
|
||||
TEST_LIST buffering-tests_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${buffering-tests_TESTS}
|
||||
PROPERTIES TIMEOUT 360 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
)
|
||||
|
||||
@@ -1,13 +1,68 @@
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
rocprofiler_deactivate_clang_tidy()
|
||||
|
||||
include(GoogleTest)
|
||||
add_executable(codeobj-library-test)
|
||||
add_executable(codeobj-library-tests)
|
||||
|
||||
set(CODEOBJ_LIB_TEST_SOURCES "codeobj_library_test.cpp")
|
||||
target_sources(codeobj-library-test PRIVATE ${CODEOBJ_LIB_TEST_SOURCES})
|
||||
|
||||
target_sources(codeobj-library-tests PRIVATE ${CODEOBJ_LIB_TEST_SOURCES})
|
||||
|
||||
set(PKG_TEST_BIN_DIR "${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}/tests/unit-tests/bin")
|
||||
|
||||
target_compile_definitions(
|
||||
codeobj-library-tests
|
||||
PRIVATE CODEOBJ_BINARY_DIR="${CMAKE_CURRENT_BINARY_DIR}/"
|
||||
CODEOBJ_INSTALL_DIR="${CMAKE_INSTALL_PREFIX}/${PKG_TEST_BIN_DIR}/")
|
||||
|
||||
configure_file(smallkernel.bin smallkernel.bin COPYONLY)
|
||||
configure_file(hipcc_output.s hipcc_output.s COPYONLY)
|
||||
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/hipcc_output.s
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}/tests/unit-tests/bin
|
||||
COMPONENT tests)
|
||||
|
||||
find_program(
|
||||
ROCM_LLVM_STRIP
|
||||
NAMES llvm-strip
|
||||
HINTS ${ROCM_PATH} ENV ROCM_PATH /opt/rocm
|
||||
PATH_SUFFIXES llvm/bin bin)
|
||||
|
||||
set(_SMALLBIN "${CMAKE_CURRENT_BINARY_DIR}/smallkernel.bin")
|
||||
set(_SMALLBIN_STRIPPED "${CMAKE_CURRENT_BINARY_DIR}/smallkernel.bin.stripped")
|
||||
|
||||
if(ROCM_LLVM_STRIP)
|
||||
add_custom_command(
|
||||
OUTPUT "${_SMALLBIN_STRIPPED}"
|
||||
COMMAND "${ROCM_LLVM_STRIP}" -s "${_SMALLBIN}" -o "${_SMALLBIN_STRIPPED}"
|
||||
DEPENDS "${_SMALLBIN}"
|
||||
COMMENT
|
||||
"Stripping ALL symbols from smallkernel.bin so CPack won't try to create a dbgsym"
|
||||
VERBATIM)
|
||||
|
||||
add_custom_target(strip_smallkernel ALL DEPENDS "${_SMALLBIN_STRIPPED}")
|
||||
|
||||
install(
|
||||
FILES "${_SMALLBIN_STRIPPED}"
|
||||
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}/tests/unit-tests/bin"
|
||||
RENAME smallkernel.bin
|
||||
COMPONENT tests)
|
||||
else()
|
||||
message(
|
||||
WARNING
|
||||
"llvm-strip not found; installing unmodified smallkernel.bin (CPack may fail on debuginfo)."
|
||||
)
|
||||
install(
|
||||
FILES "${_SMALLBIN}"
|
||||
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}/tests/unit-tests/bin"
|
||||
COMPONENT tests)
|
||||
endif()
|
||||
|
||||
target_link_libraries(
|
||||
codeobj-library-test
|
||||
codeobj-library-tests
|
||||
PRIVATE rocprofiler-sdk::rocprofiler-sdk-static-library
|
||||
rocprofiler-sdk::rocprofiler-sdk-glog
|
||||
rocprofiler-sdk::rocprofiler-sdk-hsa-runtime
|
||||
@@ -19,19 +74,9 @@ target_link_libraries(
|
||||
rocprofiler-sdk::rocprofiler-sdk-dw
|
||||
rocprofiler-sdk::rocprofiler-sdk-elf)
|
||||
|
||||
gtest_add_tests(
|
||||
TARGET codeobj-library-test
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET codeobj-library-tests
|
||||
SOURCES ${CODEOBJ_LIB_TEST_SOURCES}
|
||||
TEST_LIST codeobj-library-test_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${codeobj-library-test_TESTS}
|
||||
PROPERTIES TIMEOUT 10 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}")
|
||||
|
||||
target_compile_definitions(codeobj-library-test
|
||||
PRIVATE -DCODEOBJ_BINARY_DIR=\"${CMAKE_CURRENT_BINARY_DIR}/\")
|
||||
|
||||
configure_file(smallkernel.bin smallkernel.bin COPYONLY)
|
||||
configure_file(hipcc_output.s hipcc_output.s COPYONLY)
|
||||
ENVIRONMENT
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
)
|
||||
|
||||
@@ -27,17 +27,26 @@
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
|
||||
#include "lib/common/filesystem.hpp"
|
||||
|
||||
#ifndef CODEOBJ_BINARY_DIR
|
||||
static_assert(false && "Please define CODEOBJ_BINARY_DIR to codeobj tests binary, "
|
||||
"e.g. ../source/lib/tests/codeobj/");
|
||||
#endif
|
||||
|
||||
#ifndef CODEOBJ_INSTALL_DIR
|
||||
static_assert(false && "Please define CODEOBJ_INSTALL_DIR to the installed tests bin directory "
|
||||
"(e.g. <prefix>/share/rocprofiler-sdk/tests/unit-tests/bin/)");
|
||||
#endif
|
||||
|
||||
namespace rocprofiler
|
||||
{
|
||||
namespace testing
|
||||
{
|
||||
namespace codeobjhelper
|
||||
{
|
||||
namespace fs = common::filesystem;
|
||||
|
||||
std::string
|
||||
removeNull(std::string_view s)
|
||||
{
|
||||
@@ -47,11 +56,24 @@ removeNull(std::string_view s)
|
||||
return u;
|
||||
}
|
||||
|
||||
// Helper function for path to a test assets
|
||||
static std::string
|
||||
get_data_file_path(const char* name)
|
||||
{
|
||||
for(const char* base : {CODEOBJ_BINARY_DIR, CODEOBJ_INSTALL_DIR})
|
||||
{
|
||||
std::error_code ec;
|
||||
fs::path p = fs::path(base) / name;
|
||||
if(fs::exists(p, ec) && fs::is_regular_file(p, ec)) return p.string();
|
||||
}
|
||||
return {}; // not found
|
||||
}
|
||||
|
||||
static const std::vector<std::string>&
|
||||
GetHipccOutput()
|
||||
{
|
||||
static std::vector<std::string> result = []() {
|
||||
std::ifstream file(CODEOBJ_BINARY_DIR "hipcc_output.s");
|
||||
std::ifstream file(get_data_file_path("hipcc_output.s"));
|
||||
std::vector<std::string> ret;
|
||||
|
||||
while(file.good())
|
||||
@@ -69,7 +91,7 @@ static const std::vector<char>&
|
||||
GetCodeobjContents()
|
||||
{
|
||||
static std::vector<char> buffer = []() {
|
||||
std::string filename = CODEOBJ_BINARY_DIR "smallkernel.bin";
|
||||
std::string filename = get_data_file_path("smallkernel.bin");
|
||||
std::ifstream file(filename.data(), std::ios::binary);
|
||||
|
||||
using iterator_t = std::istreambuf_iterator<char>;
|
||||
@@ -141,7 +163,9 @@ TEST(codeobj_library, decoder_component)
|
||||
|
||||
CodeobjDecoderComponent component(objdata.data(), objdata.size());
|
||||
|
||||
std::string kernel_with_protocol = "file://" CODEOBJ_BINARY_DIR "smallkernel.bin";
|
||||
std::string smallkernel_path =
|
||||
rocprofiler::testing::codeobjhelper::get_data_file_path("smallkernel.bin");
|
||||
std::string kernel_with_protocol = "file://" + smallkernel_path;
|
||||
LoadedCodeobjDecoder loadecomp(kernel_with_protocol.data(), loaded_offset, objdata.size());
|
||||
|
||||
ASSERT_EQ(component.m_symbol_map.size(), 1);
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
#
|
||||
project(rocprofiler-sdk-tests-common LANGUAGES C CXX)
|
||||
|
||||
include(GoogleTest)
|
||||
|
||||
set(common_sources
|
||||
c_array.cpp
|
||||
demangling.cpp
|
||||
@@ -27,13 +25,10 @@ target_link_libraries(
|
||||
GTest::gtest
|
||||
GTest::gtest_main)
|
||||
|
||||
gtest_add_tests(
|
||||
rocprofiler_add_unit_test(
|
||||
TARGET common-tests
|
||||
SOURCES ${common_sources}
|
||||
TEST_LIST common-tests_TESTS
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
set_tests_properties(
|
||||
${common-tests_TESTS}
|
||||
PROPERTIES TIMEOUT 45 LABELS "unittests" FAIL_REGULAR_EXPRESSION
|
||||
"${ROCPROFILER_DEFAULT_FAIL_REGEX}" ENVIRONMENT "TEST_LOG_LEVEL=info")
|
||||
ENVIRONMENT
|
||||
"TEST_LOG_LEVEL=info"
|
||||
"LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/llvm/lib:/opt/rocm/lib:/opt/rocm/llvm/lib:$ENV{LD_LIBRARY_PATH}"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user