@@ -285,7 +285,10 @@ jobs:
285285
286286 # Set flag in a delayed manner to avoid issues with installing other
287287 # packages
288- if [[ "${{ runner.os }}" != 'macOS' ]]; then
288+ if [[ "${{ runner.os }}" == 'macOS' ]]; then
289+ export CPPFLAGS='-fprofile-instr-generate=default.%m.profraw'
290+ export CPPFLAGS="$CPPFLAGS -fcoverage-mapping"
291+ else
289292 export CPPFLAGS='--coverage -fprofile-abs-path'
290293 fi
291294
@@ -310,12 +313,19 @@ jobs:
310313
311314 - name : Filter C coverage
312315 run : |
313- lcov --rc lcov_branch_coverage=1 --capture --directory . --output-file coverage.info
314- lcov --rc lcov_branch_coverage=1 --output-file coverage.info \
315- --extract coverage.info $PWD/src/'*' $PWD/lib/'*'
316- lcov --rc lcov_branch_coverage=1 --list coverage.info
317- find . -name '*.gc*' -delete
318- if : ${{ runner.os != 'macOS' }}
316+ if [[ "${{ runner.os }}" != 'macOS' ]]; then
317+ lcov --rc lcov_branch_coverage=1 --capture --directory . \
318+ --output-file coverage.info
319+ lcov --rc lcov_branch_coverage=1 --output-file coverage.info \
320+ --extract coverage.info $PWD/src/'*' $PWD/lib/'*'
321+ lcov --rc lcov_branch_coverage=1 --list coverage.info
322+ find . -name '*.gc*' -delete
323+ else
324+ xcrun llvm-profdata merge -sparse default.*.profraw \
325+ -o default.profdata
326+ xcrun llvm-cov export -format="lcov" build/*/src/*.so \
327+ -instr-profile default.profdata > info.lcov
328+ fi
319329 - name : Upload code coverage
320330 uses : codecov/codecov-action@v3
321331
0 commit comments