0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-24 12:10:08 +01:00

build: do not build with code cache for core coverage collection

Disable code cache for built-ins when are building Node.js to
collect test coverage of built-ins, as code caching makes the
V8 coverage collection less precises (specifically, all the
functions deserialized from the code cache will not have
block-level coverage data).

Data from local testing:

Before:

---------|----------|---------|---------
 % Stmts | % Branch | % Funcs | % Lines
---------|----------|---------|---------
   95.58 |    94.43 |   95.19 |   95.58
---------|----------|---------|---------

After:

---------|----------|---------|---------
 % Stmts | % Branch | % Funcs | % Lines
---------|----------|---------|---------
   95.93 |    94.77 |   96.03 |   95.93
---------|----------|---------|---------

PR-URL: https://github.com/nodejs/node/pull/54633
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com>
This commit is contained in:
Joyee Cheung 2024-09-08 07:16:32 +08:00 committed by GitHub
parent eab9729d16
commit 3d410f8635
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1438,7 +1438,9 @@ def configure_node(o):
o['variables']['node_use_node_snapshot'] = b(
not cross_compiling and not options.shared)
if options.without_node_code_cache or options.without_node_snapshot or options.node_builtin_modules_path:
# Do not use code cache when Node.js is built for collecting coverage of itself, this allows more
# precise coverage for the JS built-ins.
if options.without_node_code_cache or options.without_node_snapshot or options.node_builtin_modules_path or options.coverage:
o['variables']['node_use_node_code_cache'] = 'false'
else:
# TODO(refack): fix this when implementing embedded code-cache when cross-compiling.