node/test/async-hooks/coverage.md
Gerhard Stoebich 8876ac5c35
async_hooks: fixup do not reuse HTTPParser
Fix some issues introduced/not fixed via
https://github.com/nodejs/node/pull/25094:
* Init hook is not emitted for a reused HTTPParser
* HTTPParser was still used as resource in init hook
* type used in init hook was always HTTPINCOMINGMESSAGE even for client
requests
* some tests have not been adapted to new resource names

With this change the async hooks init event is emitted during a call
to Initialize() as the type and resource object is available at this
time. As a result Initialize() must be called now which could be seen
as breaking change even HTTPParser is not part of documented API.

It was needed to put the ClientRequest instance into a wrapper object
instead passing it directly as async resource otherwise
test-domain-multi fails. I think this is because adding an EventEmitter
to a Domain adds a property 'domain' and the presence of this changes
the context propagation in domains.

Besides that tests still refering to resource HTTPParser have been
updated/improved.

Fixes: https://github.com/nodejs/node/issues/27467
Fixes: https://github.com/nodejs/node/issues/26961
Refs: https://github.com/nodejs/node/pull/25094

PR-URL: https://github.com/nodejs/node/pull/27477
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2019-05-03 16:02:55 +02:00

2.0 KiB

AsyncHooks Coverage Overview

Showing which kind of async resource is covered by which test:

Resource Type Test
CONNECTION test-connection.ssl.js
FSEVENTWRAP test-fseventwrap.js
FSREQCALLBACK test-fsreqcallback-{access,readFile}.js
GETADDRINFOREQWRAP test-getaddrinforeqwrap.js
GETNAMEINFOREQWRAP test-getnameinforeqwrap.js
HTTPINCOMINGMESSAGE test-httpparser.request.js
HTTPCLIENTREQUEST test-httpparser.response.js
Immediate test-immediate.js
JSSTREAM TODO (crashes when accessing directly)
PBKDF2REQUEST test-crypto-pbkdf2.js
PIPECONNECTWRAP test-pipeconnectwrap.js
PIPEWRAP test-pipewrap.js
PROCESSWRAP test-pipewrap.js
QUERYWRAP test-querywrap.js
RANDOMBYTESREQUEST test-crypto-randomBytes.js
SHUTDOWNWRAP test-shutdownwrap.js
SIGNALWRAP test-signalwrap.js
STATWATCHER test-statwatcher.js
TCPCONNECTWRAP test-tcpwrap.js
TCPWRAP test-tcpwrap.js
TLSWRAP test-tlswrap.js
TTYWRAP test-ttywrap.{read,write}stream.js
UDPSENDWRAP test-udpsendwrap.js
UDPWRAP test-udpwrap.js
WRITEWRAP test-writewrap.js
ZLIB test-zlib.zlib-binding.deflate.js