5959 - name : Configure (coverage)
6060 run : |
6161 cmake --preset dev-clang -B build/coverage \
62- -DCMAKE_CXX_FLAGS ="--gcc-install-dir=/usr/lib/gcc/x86_64-linux-gnu/16 -fprofile-instr-generate -fcoverage-mapping" \
63- -DCMAKE_EXE_LINKER_FLAGS ="-fprofile-instr-generate"
62+ -DCMAKE_CXX_FLAGS_INIT ="--gcc-install-dir=/usr/lib/gcc/x86_64-linux-gnu/16 -fprofile-instr-generate -fcoverage-mapping" \
63+ -DCMAKE_EXE_LINKER_FLAGS_INIT ="-fprofile-instr-generate"
6464
6565 - name : Build
6666 run : cmake --build build/coverage --config Debug
8282 first="${objects[0]}"
8383 obj_args=()
8484 for o in "${objects[@]:1}"; do obj_args+=("-object=$o"); done
85- llvm-cov-22 report "$first" "${obj_args[@]}" \
85+ report=$( llvm-cov-22 report "$first" "${obj_args[@]}" \
8686 -instr-profile=build/coverage/coverage.profdata \
87- -use-color=false src include/eggs 2>/dev/null
87+ -path-equivalence=".,${GITHUB_WORKSPACE}" \
88+ -use-color=false src include/eggs 2>/dev/null)
89+ echo "$report"
90+ if [ "$GITHUB_ACTIONS" = "true" ]; then
91+ escaped="${report//'%'/'%25'}"
92+ escaped="${escaped//$'\n'/'%0A'}"
93+ echo "::notice title=Coverage report (llvm-cov)::$escaped"
94+ fi
8895
8996 - name : Generate HTML report
9097 run : |
94101 for o in "${objects[@]:1}"; do obj_args+=("-object=$o"); done
95102 llvm-cov-22 show "$first" "${obj_args[@]}" \
96103 -instr-profile=build/coverage/coverage.profdata \
104+ -path-equivalence=".,${GITHUB_WORKSPACE}" \
97105 -format=html \
98106 -output-dir=build/coverage/html \
99107 -show-line-counts-or-regions \
@@ -154,8 +162,8 @@ jobs:
154162 - name : Configure (coverage)
155163 run : |
156164 cmake --preset dev-gcc -B build/coverage-gcc \
157- -DCMAKE_CXX_FLAGS ="--coverage" \
158- -DCMAKE_EXE_LINKER_FLAGS ="--coverage"
165+ -DCMAKE_CXX_FLAGS_INIT ="--coverage" \
166+ -DCMAKE_EXE_LINKER_FLAGS_INIT ="--coverage"
159167
160168 - name : Build
161169 run : cmake --build build/coverage-gcc --config Debug
@@ -170,22 +178,32 @@ jobs:
170178 run : |
171179 lcov --capture \
172180 --gcov-tool gcov-16 \
181+ --rc branch_coverage=1 \
173182 --ignore-errors mismatch,inconsistent \
183+ --base-directory . \
174184 --directory build/coverage-gcc \
175185 --output-file build/coverage-gcc/coverage.info
176186 lcov --extract build/coverage-gcc/coverage.info \
177187 '*/src/*' '*/include/eggs/*' \
188+ --rc branch_coverage=1 \
178189 --ignore-errors unused \
179190 --output-file build/coverage-gcc/coverage.info
180191
181192 - name : Coverage report
182193 run : |
183- lcov --list build/coverage-gcc/coverage.info
194+ report=$(lcov --list build/coverage-gcc/coverage.info --rc branch_coverage=1)
195+ echo "$report"
196+ if [ "$GITHUB_ACTIONS" = "true" ]; then
197+ escaped="${report//'%'/'%25'}"
198+ escaped="${escaped//$'\n'/'%0A'}"
199+ echo "::notice title=Coverage report (gcov)::$escaped"
200+ fi
184201
185202 - name : Generate HTML report
186203 run : |
187204 genhtml build/coverage-gcc/coverage.info \
188205 --output-directory build/coverage-gcc/html \
206+ --rc branch_coverage=1 \
189207 --quiet
190208
191209 - name : Upload coverage report
0 commit comments