Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 05e7644

Browse files
committed
ci: Get coverage working for compiled macOS code
1 parent 8b3eb71 commit 05e7644

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

.github/workflows/tests.yml

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)