@@ -285,7 +285,10 @@ jobs:
285
285
286
286
# Set flag in a delayed manner to avoid issues with installing other
287
287
# 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
289
292
export CPPFLAGS='--coverage -fprofile-abs-path'
290
293
fi
291
294
@@ -310,12 +313,19 @@ jobs:
310
313
311
314
- name : Filter C coverage
312
315
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
319
329
- name : Upload code coverage
320
330
uses : codecov/codecov-action@v3
321
331
0 commit comments