build: Add option to compile for coverage reports
Add --coverage option to configure to support
compiling for generation of C based coverage reports
PR-URL: https://github.com/nodejs/node/pull/9463
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
diff --git a/configure b/configure
index 02e6296..af46f13 100755
--- a/configure
+++ b/configure
@@ -59,6 +59,11 @@
default='/usr/local',
help='select the install prefix [default: %default]')
+parser.add_option('--coverage',
+ action='store_true',
+ dest='coverage',
+ help='Build node with code coverage enabled')
+
parser.add_option('--debug',
action='store_true',
dest='debug',
@@ -857,6 +862,11 @@
if options.use_xcode and options.use_ninja:
raise Exception('--xcode and --ninja cannot be used together.')
+ if options.coverage:
+ o['variables']['coverage'] = 'true'
+ else:
+ o['variables']['coverage'] = 'false'
+
def configure_library(lib, output):
shared_lib = 'shared_' + lib
output['variables']['node_' + shared_lib] = b(getattr(options, shared_lib))
diff --git a/node.gyp b/node.gyp
index bfdbf92..2254a6e 100644
--- a/node.gyp
+++ b/node.gyp
@@ -549,11 +549,22 @@
'NODE_PLATFORM="sunos"',
],
}],
- [ '(OS=="freebsd" or OS=="linux") and node_shared=="false"', {
+ [ '(OS=="freebsd" or OS=="linux") and node_shared=="false" and coverage=="false"', {
'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"', {
+ 'ldflags': [ '-Wl,-z,noexecstack',
+ '-Wl,--whole-archive <(V8_BASE)',
+ '-Wl,--no-whole-archive',
+ '--coverage',
+ '-g',
+ '-O0' ],
+ 'cflags': [ '--coverage',
+ '-g',
+ '-O0' ]
+ }],
[ 'OS=="sunos"', {
'ldflags': [ '-Wl,-M,/usr/lib/ld/map.noexstk' ],
}],