diff options
author | James M Snell <jasnell@gmail.com> | 2017-12-12 11:34:17 -0800 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2017-12-18 10:19:21 -0800 |
commit | 0babd181a0c5d775e62a12b3b04fe4d7654fe80a (patch) | |
tree | cf02bdb6a71b8d346109d1ab66e18c559dbf5a23 /test/parallel/test-http2-server-push-stream-errors.js | |
parent | 18ca0b64422337cc6844949b9b97f39fef82f512 (diff) | |
download | android-node-v8-0babd181a0c5d775e62a12b3b04fe4d7654fe80a.tar.gz android-node-v8-0babd181a0c5d775e62a12b3b04fe4d7654fe80a.tar.bz2 android-node-v8-0babd181a0c5d775e62a12b3b04fe4d7654fe80a.zip |
http2: cleanup Http2Stream/Http2Session destroy
PR-URL: https://github.com/nodejs/node/pull/17406
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
This is a significant cleanup and refactoring of the
cleanup/close/destroy logic for Http2Stream and Http2Session.
There are significant changes here in the timing and ordering
of cleanup logic, JS apis. and various related necessary edits.
Diffstat (limited to 'test/parallel/test-http2-server-push-stream-errors.js')
-rw-r--r-- | test/parallel/test-http2-server-push-stream-errors.js | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/test/parallel/test-http2-server-push-stream-errors.js b/test/parallel/test-http2-server-push-stream-errors.js index 56e329dcff..7eaf4dc94d 100644 --- a/test/parallel/test-http2-server-push-stream-errors.js +++ b/test/parallel/test-http2-server-push-stream-errors.js @@ -34,9 +34,8 @@ const specificTests = [ { ngError: constants.NGHTTP2_ERR_STREAM_CLOSED, error: { - code: 'ERR_HTTP2_STREAM_CLOSED', - type: Error, - message: 'The stream is already closed' + code: 'ERR_HTTP2_INVALID_STREAM', + type: Error }, type: 'stream' }, @@ -66,47 +65,25 @@ Http2Stream.prototype.pushPromise = () => currentError.ngError; const server = http2.createServer(); server.on('stream', common.mustCall((stream, headers) => { - const errorMustCall = common.expectsError(currentError.error); - const errorMustNotCall = common.mustNotCall( - `${currentError.error.code} should emit on ${currentError.type}` - ); - - if (currentError.type === 'stream') { - stream.session.on('error', errorMustNotCall); - stream.on('error', errorMustCall); - stream.on('error', common.mustCall(() => { - stream.respond(); - stream.end(); - })); - } else { - stream.session.once('error', errorMustCall); - stream.on('error', errorMustNotCall); - } - - stream.pushStream({}, () => {}); + stream.pushStream({}, common.expectsError(currentError.error)); + stream.respond(); + stream.end(); }, tests.length)); server.listen(0, common.mustCall(() => runTest(tests.shift()))); function runTest(test) { - const port = server.address().port; - const url = `http://localhost:${port}`; - const headers = { - ':path': '/', - ':method': 'POST', - ':scheme': 'http', - ':authority': `localhost:${port}` - }; + const url = `http://localhost:${server.address().port}`; const client = http2.connect(url); - const req = client.request(headers); + const req = client.request(); currentError = test; req.resume(); req.end(); - req.on('end', common.mustCall(() => { - client.destroy(); + req.on('close', common.mustCall(() => { + client.close(); if (!tests.length) { server.close(); |