[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>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
66ea1cdff2
Коммит
a2288eb50b
@@ -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);
|
||||
|
||||
Ссылка в новой задаче
Block a user