src: refactor coverage connection#26513
Conversation
src/inspector_profiler.cc
Outdated
bcoe
left a comment
There was a problem hiding this comment.
This looks reasonable to me 👍 It's nice to be able to remove the confusing disableAllAsyncHooks methods.
Let's just make sure we run the coverage CI against this before we land? @mhdawson how far did we get on making this run as part of the smoke testing process?
- Refactor the C++ class to be resuable for other types of profiles - Move the try-catch block around coverage collection callback to be inside the callback to silence potential JSON or write errors. - Use Function::Call instead of MakeCallback to call the coverage message callback since it does not actually need async hook handling. This way we no longer needs to disable the async hooks when writing the coverage results. - Renames `lib/internal/coverage-gen/with_profiler.js` to `lib/internal/profiler.js` because it is now the only way to generate coverage.
92ffa3b to
a709987
Compare
|
Rebased and addressed reviews. CI: https://ci.nodejs.org/job/node-test-pull-request/21434/ @gengjiawen Regarding raw strings: I have no idea why but it looks like neither we nor non-test V8 code use those, so I'd prefer leaving that out of this PR, in case there's any weird compiler support oddities. Feel free to open a separate PR to update those. |
|
Landed in 963ee0b...eb0bf8d |
- Refactor the C++ class to be resuable for other types of profiles - Move the try-catch block around coverage collection callback to be inside the callback to silence potential JSON or write errors. - Use Function::Call instead of MakeCallback to call the coverage message callback since it does not actually need async hook handling. This way we no longer needs to disable the async hooks when writing the coverage results. - Renames `lib/internal/coverage-gen/with_profiler.js` to `lib/internal/profiler.js` because it is now the only way to generate coverage. PR-URL: #26513 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Coe <bencoe@gmail.com>
PR-URL: #26513 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Coe <bencoe@gmail.com>
|
This does not land cleanly on v11. It seems to rely on other commits that should be backported first. Please open a manual backport for it or change the labels accordingly. |
- Refactor the C++ class to be resuable for other types of profiles - Move the try-catch block around coverage collection callback to be inside the callback to silence potential JSON or write errors. - Use Function::Call instead of MakeCallback to call the coverage message callback since it does not actually need async hook handling. This way we no longer needs to disable the async hooks when writing the coverage results. - Renames `lib/internal/coverage-gen/with_profiler.js` to `lib/internal/profiler.js` because it is now the only way to generate coverage. PR-URL: #26513 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Coe <bencoe@gmail.com>
PR-URL: #26513 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Coe <bencoe@gmail.com>
- Refactor the C++ class to be resuable for other types of profiles - Move the try-catch block around coverage collection callback to be inside the callback to silence potential JSON or write errors. - Use Function::Call instead of MakeCallback to call the coverage message callback since it does not actually need async hook handling. This way we no longer needs to disable the async hooks when writing the coverage results. - Renames `lib/internal/coverage-gen/with_profiler.js` to `lib/internal/profiler.js` because it is now the only way to generate coverage. PR-URL: #26513 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Coe <bencoe@gmail.com>
PR-URL: #26513 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Coe <bencoe@gmail.com>

src: refactor coverage connection
to be inside the callback to silence potential JSON or write
errors.
message callback since it does not actually need async hook
handling. This way we no longer needs to disable the async
hooks when writing the coverage results.
lib/internal/coverage-gen/with_profiler.jstolib/internal/profiler.jsbecause it is now the only wayto generate coverage.
test: show stderr on v8 coverage test failures
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes