Skip to content

Commit

Permalink
build: update gcovr for gcc 8 compatibility
Browse files Browse the repository at this point in the history
Update the version of `gcovr` used for C++ coverage from 3.4 to 4.2 for
compatibility with gcc/g++ 8.

PR-URL: #39326
Refs: #39303
Refs: gcovr/gcovr#228
Refs: nodejs/build#2705
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
richardlau authored and targos committed Sep 4, 2021
1 parent f206af6 commit f2e1c22
Showing 1 changed file with 6 additions and 14 deletions.
20 changes: 6 additions & 14 deletions Makefile
Expand Up @@ -203,7 +203,7 @@ check: test
# in place
coverage-clean:
$(RM) -r node_modules
$(RM) -r gcovr build
$(RM) -r gcovr
$(RM) -r coverage/tmp
$(FIND) out/$(BUILDTYPE)/obj.target \( -name "*.gcda" -o -name "*.gcno" \) \
-type f -exec $(RM) {} \;
Expand All @@ -219,13 +219,7 @@ coverage: coverage-test ## Run the tests and generate a coverage report.
.PHONY: coverage-build
coverage-build: all
-$(MAKE) coverage-build-js
if [ ! -d gcovr ]; then git clone -b 3.4 --depth=1 \
--single-branch https://github.com/gcovr/gcovr.git; fi
if [ ! -d build ]; then git clone --depth=1 \
--single-branch https://github.com/nodejs/build.git; fi
if [ ! -f gcovr/scripts/gcovr.orig ]; then \
(cd gcovr && patch -N -p1 < \
"$(CURDIR)/build/jenkins/scripts/coverage/gcovr-patches-3.4.diff"); fi
if [ ! -d gcovr ]; then $(PYTHON) -m pip install -t gcovr gcovr==4.2; fi
$(MAKE)

.PHONY: coverage-build-js
Expand All @@ -237,16 +231,14 @@ coverage-build-js:

.PHONY: coverage-test
coverage-test: coverage-build
$(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node/src/*/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/*.gcda
$(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/*/*.gcda
$(FIND) out/$(BUILDTYPE)/obj.target -name "*.gcda" -type f -exec $(RM) {} \;
-NODE_V8_COVERAGE=coverage/tmp \
TEST_CI_ARGS="$(TEST_CI_ARGS) --type=coverage" $(MAKE) $(COVTESTS)
$(MAKE) coverage-report-js
-(cd out && "../gcovr/scripts/gcovr" \
-(cd out && PYTHONPATH=../gcovr $(PYTHON) -m gcovr \
--gcov-exclude='.*\b(deps|usr|out|cctest|embedding)\b' -v \
-r Release/obj.target --html --html-detail -o ../coverage/cxxcoverage.html \
-r ../src/ --object-directory Release/obj.target \
--html --html-details -o ../coverage/cxxcoverage.html \
--gcov-executable="$(GCOV)")
@printf "Javascript coverage %%: "
@grep -B1 Lines coverage/index.html | head -n1 \
Expand Down

0 comments on commit f2e1c22

Please sign in to comment.