-
Notifications
You must be signed in to change notification settings - Fork 81
Code Coverage
Kiriti Gowda edited this page Jun 18, 2025
·
5 revisions
cd ~/
git clone https://github.com/rocm/mivisionx
mkdir build_coverage && cd build_coverage
cmake -D CMAKE_BUILD_TYPE=Debug -D CMAKE_CXX_FLAGS="-fprofile-instr-generate -fcoverage-mapping" ../mivisionx
make -j8
sudo make install
cd ~/
mkdir code_coverage && cd code_coverage
export LLVM_PROFILE_FILE="$(pwd)/rawdata/library-%p.profraw"
cd ~/
- CTests
mkdir mivisionx_test && cd mivisionx_test
cmake /opt/rocm/share/mivisionx/test
ctest -VV
cd ~/
- Conformance
mkdir conformance_tests && cd conformance_tests
git clone -b openvx_1.3 https://github.com/KhronosGroup/OpenVX-cts.git
export VX_TEST_DATA_PATH=$(pwd)/OpenVX-cts/test_data/
mkdir build_cts && cd build_cts
cmake -DOPENVX_INCLUDES=/opt/rocm/include/mivisionx -DOPENVX_LIBRARIES=/opt/rocm/lib/libopenvx.so\;/opt/rocm/lib/libvxu.so\;pthread\;dl\;m\;rt -DOPENVX_CONFORMANCE_VISION=ON ../OpenVX-cts
cmake --build .
# CPU Conformance
AGO_DEFAULT_TARGET=CPU LD_LIBRARY_PATH=./lib ./bin/vx_test_conformance
# GPU Conformance
AGO_DEFAULT_TARGET=GPU LD_LIBRARY_PATH=./lib ./bin/vx_test_conformance
cd ~/
sudo apt install llvm-amdgpu-dev lcov
cd code_coverage
/opt/amdgpu/lib/x86_64-linux-gnu/llvm-20.1/bin/llvm-profdata merge -sparse rawdata/*.profraw -o library.profdata
/opt/amdgpu/lib/x86_64-linux-gnu/llvm-20.1/bin/llvm-cov export -object /opt/rocm/lib/libopenvx.so --instr-profile=library.profdata --format=lcov > coverage.info
lcov --remove coverage.info '/opt/*' --output-file coverage.info
lcov --list coverage.info
lcov --summary coverage.info
cd ~/
Note
- RHEL -
/opt/amdgpu/lib64/llvm-20.1/bin/llvm-cov
- Ubuntu -
/opt/amdgpu/lib/x86_64-linux-gnu/llvm-20.1/bin
- Generate HTML -
genhtml coverage.info -o coverage-report
- Check git commit -
(printf "commit %s\0" $(git cat-file commit HEAD | wc -c); git cat-file commit HEAD) | sha1sum)
- macOS -
cmake -DOPENVX_INCLUDES=/opt/rocm/include/mivisionx -DOPENVX_LIBRARIES=/opt/rocm/lib/libopenvx.dylib\;/opt/rocm/lib/libvxu.dylib -DOPENVX_CONFORMANCE_VISION=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 ../OpenVX-cts
Copyright (c) 2015 - 2023 Advanced Micro Devices, Inc. All rights reserved.