Skip to content

Commit ea6bb9a

Browse files
committed
Fix CodeCov
1 parent e1a2b5b commit ea6bb9a

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

.github/workflows/c-cpp.yml

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,44 @@ jobs:
1818
sudo apt-get update
1919
sudo apt-get install -y build-essential cmake lcov
2020
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
2127
2228
- name: Configure CMake
2329
run: |
2430
cmake -B build -DCMAKE_BUILD_TYPE=Debug \
25-
-DCMAKE_CXX_FLAGS="-fprofile-arcs -ftest-coverage"
31+
-DCMAKE_CXX_FLAGS="-fprofile-arcs -ftest-coverage -fprofile-update=atomic -O0" \
32+
-DCMAKE_EXE_LINKER_FLAGS="-lgcov --coverage"
2633
2734
- name: Build
28-
run: cmake --build build --clean-first
35+
run: |
36+
cmake --build build --clean-first
2937
3038
- name: Run Tests
3139
working-directory: ./build
3240
run: ./ConcurrentHashMapTest
3341

34-
- name: Generate Coverage Report
42+
- name: Generate Coverage (lcov)
3543
run: |
3644
lcov --capture --directory ./build --output-file coverage.info \
3745
--rc geninfo_unexecuted_blocks=1 \
38-
--ignore-errors mismatch
46+
--ignore-errors mismatch,negative
3947
lcov --remove coverage.info '/usr/*' '*/test/*' --output-file coverage.info
4048
lcov --list coverage.info
4149
50+
- name: Generate Coverage (gcovr alternative)
51+
run: |
52+
gcovr -r ${{ github.workspace }} --exclude-unreachable-branches \
53+
--exclude-throw-branches --html-details coverage.html
54+
4255
- name: Upload to Codecov
4356
uses: codecov/codecov-action@v5
4457
with:
4558
token: ${{ secrets.CODECOV_TOKEN }}
46-
file: coverage.info
59+
files: coverage.info,coverage.xml
60+
flags: cpp
61+
fail_ci_if_error: false

0 commit comments

Comments
 (0)