@@ -18,44 +18,30 @@ jobs:
18
18
sudo apt-get update
19
19
sudo apt-get install -y build-essential cmake lcov
20
20
sudo apt-get install -y libgtest-dev googletest
21
- sudo apt-get install -y gcovr # Alternative coverage tool
22
-
23
- - name : Clean workspace
24
- run : |
25
- rm -rf build
26
- find . -name "*.gcda" -delete
27
21
28
22
- name : Configure CMake
29
23
run : |
30
24
cmake -B build -DCMAKE_BUILD_TYPE=Debug \
31
- -DCMAKE_CXX_FLAGS="-fprofile-arcs -ftest-coverage -fprofile-update=atomic -O0" \
32
- -DCMAKE_EXE_LINKER_FLAGS="-lgcov --coverage"
25
+ -DCMAKE_CXX_FLAGS="-fprofile-arcs -ftest-coverage -fprofile-update=atomic -O0"
33
26
34
27
- name : Build
35
- run : |
36
- cmake --build build --clean-first
28
+ run : cmake --build build --clean-first
37
29
38
30
- name : Run Tests
39
31
working-directory : ./build
40
32
run : ./ConcurrentHashMapTest
41
33
42
- - name : Generate Coverage (lcov)
34
+ - name : Generate Coverage Report
43
35
run : |
44
36
lcov --capture --directory ./build --output-file coverage.info \
45
37
--rc geninfo_unexecuted_blocks=1 \
46
38
--ignore-errors mismatch,negative
47
- lcov --remove coverage.info '/usr/*' '*/test/*' --output-file coverage.info
48
- lcov --list coverage.info
49
-
50
- - name : Generate Coverage (gcovr alternative)
51
- run : |
52
- gcovr -r ${{ github.workspace }} --exclude-unreachable-branches \
53
- --exclude-throw-branches --html-details coverage.html
39
+ lcov --remove coverage.info '/usr/*' --output-file coverage.info
40
+ lcov --list coverage.info || true # Prevent failure on warnings
54
41
55
42
- name : Upload to Codecov
56
43
uses : codecov/codecov-action@v5
57
44
with :
58
45
token : ${{ secrets.CODECOV_TOKEN }}
59
- files : coverage.info,coverage.xml
60
- flags : cpp
61
- fail_ci_if_error : false
46
+ file : coverage.info
47
+ fail_ci_if_error : false
0 commit comments