From a89d215b79cc1aa300e25be13aa2489a2322f1ad Mon Sep 17 00:00:00 2001 From: Yihong Wang Date: Fri, 26 Jan 2018 22:35:35 -0800 Subject: [PATCH] build: fix coverage build After adding the node_lib target in node.gyp, most of the node source files are moved to that target. When coverage option is enabled, corresponding cflags and ldflags are needed in that target as well. gcovr also needs to check .gcda data for both node and node_lib. PR-URL: https://github.com/nodejs/node/pull/18409 Fixes: https://github.com/nodejs/node/issues/18402 Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Joyee Cheung Reviewed-By: Michael Dawson --- Makefile | 5 ++++- node.gypi | 17 ++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 003c69579bc..6ccce30085b 100644 --- a/Makefile +++ b/Makefile @@ -191,6 +191,9 @@ coverage-test: coverage-build $(RM) out/$(BUILDTYPE)/obj.target/node/gen/*.gcda $(RM) out/$(BUILDTYPE)/obj.target/node/src/*.gcda $(RM) out/$(BUILDTYPE)/obj.target/node/src/tracing/*.gcda + $(RM) out/$(BUILDTYPE)/obj.target/node_lib/gen/*.gcda + $(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/*.gcda + $(RM) out/$(BUILDTYPE)/obj.target/node_lib/src/tracing/*.gcda -$(MAKE) $(COVTESTS) mv lib lib__ mv lib_ lib @@ -201,7 +204,7 @@ coverage-test: coverage-build --temp-directory "$(CURDIR)/.cov_tmp" \ --report-dir "../coverage") -(cd out && "../gcovr/scripts/gcovr" --gcov-exclude='.*deps' \ - --gcov-exclude='.*usr' -v -r Release/obj.target/node \ + --gcov-exclude='.*usr' -v -r Release/obj.target \ --html --html-detail -o ../coverage/cxxcoverage.html \ --gcov-executable="$(GCOV)") mv lib lib_ diff --git a/node.gypi b/node.gypi index 49384db0a5d..d01004ce8cc 100644 --- a/node.gypi +++ b/node.gypi @@ -184,25 +184,20 @@ ], }], [ '(OS=="freebsd" or OS=="linux") and node_shared=="false"' - ' and coverage=="false" and force_load=="true"', { + ' and force_load=="true"', { 'ldflags': [ '-Wl,-z,noexecstack', '-Wl,--whole-archive <(v8_base)', '-Wl,--no-whole-archive' ] }], - [ '(OS=="freebsd" or OS=="linux") and node_shared=="false"' - ' and coverage=="true" and force_load=="true"', { - 'ldflags': [ '-Wl,-z,noexecstack', - '-Wl,--whole-archive <(v8_base)', - '-Wl,--no-whole-archive', - '--coverage', + [ 'OS in "mac freebsd linux" and node_shared=="false"' + ' and coverage=="true"', { + 'ldflags': [ '--coverage', '-g', '-O0' ], - 'cflags': [ '--coverage', + 'cflags': [ '--coverage', '-g', '-O0' ], - 'cflags!': [ '-O3' ] - }], - [ 'OS=="mac" and node_shared=="false" and coverage=="true"', { + 'cflags!': [ '-O3' ], 'xcode_settings': { 'OTHER_LDFLAGS': [ '--coverage',