Skip to content

Commit 7e63522

Browse files
rebossamitch747root
authored
[hipblaslt] upload coverage reports to codecov.io (#1945)
## Motivation Preparing hipblaslt for uploading codecov.io reports to codecov.io ## Technical Details Added a command to convert llvm-cov (profdata) format to lcov format for upload to codecov.io. Also adding a hipblaslt codecov job in CI and had to fix the code cov process because test case code was being instrumented, which will result in misleading coverage reports. ## Test Plan Will prove that this runs in the newly created CI job. Comment should be made on this PR about the projects coverage by codecov.io. ## Test Result https://math-ci.amd.com/job/rocm-libraries/job/codecov/job/hipblaslt/view/change-requests/job/PR-1945/50/ --------- Co-authored-by: Aiden Mitchell <[email protected]> Co-authored-by: root <[email protected]>
1 parent f066e8c commit 7e63522

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

codecov.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ coverage:
99
hipBLAS:
1010
flags: [hipBLAS]
1111
target: 80%
12+
hipBLASLt:
13+
flags: [hipBLASLt]
14+
target: 80%
1215
hipCUB:
1316
flags: [hipCUB]
1417
target: 80%

projects/hipblaslt/CMakeLists.txt

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,7 @@ if(HIPBLASLT_ENABLE_HOST)
118118
find_library(rocTracer roctx64 REQUIRED)
119119
get_filename_component(ROCTRACER_LIB_DIR ${rocTracer} DIRECTORY)
120120
get_filename_component(ROCTRACER_ROOT_DIR ${ROCTRACER_LIB_DIR} DIRECTORY)
121-
122-
find_path(ROCTRACER_INCLUDE_DIR "roctracer/roctx.h"
121+
find_path(ROCTRACER_INCLUDE_DIR "roctracer/roctx.h"
123122
HINTS ${ROCTRACER_ROOT_DIR}
124123
PATH_SUFFIXES include
125124
REQUIRED)
@@ -310,7 +309,7 @@ endif()
310309

311310
if(HIPBLASLT_ENABLE_HOST)
312311
# work around code object stripping failure if using /usr/bin/strip
313-
find_program(LLVM_STRIP
312+
find_program(LLVM_STRIP
314313
NAMES llvm-strip
315314
PATH_SUFFIXES lib/llvm/bin llvm/bin bin
316315
)
@@ -521,8 +520,7 @@ if(HIPBLASLT_ENABLE_CLIENT AND HIPBLASLT_ENABLE_SAMPLES)
521520
DESTINATION ${CMAKE_INSTALL_DATADIR}/hipblaslt/samples
522521
COMPONENT samples
523522
FILES_MATCHING
524-
PATTERN "*.cpp"
525-
PATTERN "*.h"
523+
PATTERN "*.cpp|*.h"
526524
PATTERN "CMakeLists.txt" EXCLUDE
527525
)
528526
rocm_package_setup_client_component(samples)
@@ -545,17 +543,10 @@ endif()
545543

546544
if(HIPBLASLT_ENABLE_COVERAGE)
547545
target_compile_options(hipblaslt PRIVATE -g -O0 -fprofile-instr-generate -fcoverage-mapping)
548-
target_link_options(hipblaslt PRIVATE -fprofile-instr-generate)
546+
target_link_options(hipblaslt PUBLIC -fprofile-instr-generate)
549547

550548
target_compile_options(hipblaslt-clients-common PRIVATE -g -O0 -fprofile-instr-generate -fcoverage-mapping)
551-
target_link_options(hipblaslt-clients-common PRIVATE -fprofile-instr-generate)
552-
553-
target_compile_options(hipblaslt-bench PRIVATE -g -O0 -fprofile-instr-generate -fcoverage-mapping)
554-
target_link_options(hipblaslt-bench PRIVATE -fprofile-instr-generate)
555-
556-
target_compile_options(hipblaslt-test PRIVATE -g -O0 -fprofile-instr-generate -fcoverage-mapping -fvisibility=default)
557-
target_link_options(hipblaslt-test PRIVATE -fprofile-instr-generate)
558-
target_compile_definitions(hipblaslt-test PRIVATE CODE_COVERAGE)
549+
target_link_options(hipblaslt-clients-common PUBLIC -fprofile-instr-generate)
559550

560551
set(coverage_dir "${CMAKE_CURRENT_BINARY_DIR}/coverage-report")
561552
add_custom_target(
@@ -567,24 +558,30 @@ if(HIPBLASLT_ENABLE_COVERAGE)
567558
GTEST_LISTENER=NO_PASS_LINE_IN_LOG
568559
$<TARGET_FILE:hipblaslt-test>
569560
--precompile=hipblaslt-test-precompile.db
561+
COMMENT "Running hipblaslt testcases for coverage report"
570562
)
563+
571564
find_program(
572565
LLVM_PROFDATA
573566
llvm-profdata
574-
HINTS llvm/bin
575567
REQUIRED
568+
HINTS ${ROCM_PATH}/llvm/bin
569+
PATHS /opt/rocm/llvm/bin
576570
)
577571
find_program(
578572
LLVM_COV
579573
llvm-cov
580574
REQUIRED
581-
HINTS llvm/bin
575+
HINTS ${ROCM_PATH}/llvm/bin
576+
PATHS /opt/rocm/llvm/bin
582577
)
583578
add_custom_target(
584579
coverage
585580
DEPENDS code_cov_tests
586581
COMMAND ${LLVM_PROFDATA} merge -sparse "${coverage_dir}/profraw/hipblaslt-coverage_*.profraw" -o "${coverage_dir}/hipblaslt.profdata"
587-
COMMAND ${LLVM_COV} report -object $<TARGET_FILE:hipblaslt> -instr-profile="${coverage_dir}/hipblaslt.profdata"
588-
COMMAND ${LLVM_COV} show -object $<TARGET_FILE:hipblaslt> -instr-profile="${coverage_dir}/hipblaslt.profdata" -format=html -output-dir="${coverage_dir}"
582+
COMMAND ${LLVM_COV} report -object $<TARGET_FILE:hipblaslt> -instr-profile="${coverage_dir}/hipblaslt.profdata" --ignore-filename-regex=".*Tensile.*|.*origami.*"
583+
COMMAND ${LLVM_COV} show -object $<TARGET_FILE:hipblaslt> -instr-profile="${coverage_dir}/hipblaslt.profdata" --ignore-filename-regex=".*Tensile.*|.*origami.*" -format=html -output-dir="${coverage_dir}"
584+
COMMAND ${LLVM_COV} export -object $<TARGET_FILE:hipblaslt> -instr-profile="${coverage_dir}/hipblaslt.profdata" --ignore-filename-regex=".*Tensile.*|.*origami.*" -format=lcov > "${coverage_dir}/coverage.info"
585+
COMMENT "Generating code coverage report"
589586
)
590587
endif()

0 commit comments

Comments
 (0)