From 4012ae888570e3d8de59f7bdf9bc12d026043178 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 d7158eed378f97..35ce00a043065f 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 82953ee9ff9af4..852cc18eee7495 100644 --- a/node.gypi +++ b/node.gypi @@ -236,25 +236,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',