Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTrivikram Kamat <trivikr.dev@gmail.com>2017-10-03 10:44:09 +0300
committerMyles Borins <mylesborins@google.com>2017-10-24 00:55:37 +0300
commitc07d75750865e7a0ce6c812c381df8fd4d3821cb (patch)
tree56dc5bba7416e57a612989e4611b0be4060200df /test
parent65c5d0e27ac147d5fff9842d41efbaed5c384b96 (diff)
test: http2 session operations after destroy
Refs #14985 PR-URL: https://github.com/nodejs/node/pull/15758 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-http2-server-stream-session-destroy.js42
1 files changed, 31 insertions, 11 deletions
diff --git a/test/parallel/test-http2-server-stream-session-destroy.js b/test/parallel/test-http2-server-stream-session-destroy.js
index 2426216580b..f2cc4a1f77c 100644
--- a/test/parallel/test-http2-server-stream-session-destroy.js
+++ b/test/parallel/test-http2-server-stream-session-destroy.js
@@ -11,11 +11,6 @@ const server = h2.createServer();
server.on(
'stream',
common.mustCall((stream) => {
- const errorObj = {
- type: Error,
- code: 'ERR_HTTP2_INVALID_STREAM',
- message: 'The stream has been destroyed'
- };
stream.session.destroy();
// Test that stream.state getter returns an empty object
@@ -24,15 +19,40 @@ server.on(
// Test that ERR_HTTP2_INVALID_STREAM is thrown while calling
// stream operations after the stream session has been destroyed
- common.expectsError(() => stream.additionalHeaders(), errorObj);
- common.expectsError(() => stream.priority(), errorObj);
+ const invalidStreamError = {
+ type: Error,
+ code: 'ERR_HTTP2_INVALID_STREAM',
+ message: 'The stream has been destroyed'
+ };
+ common.expectsError(() => stream.additionalHeaders(), invalidStreamError);
+ common.expectsError(() => stream.priority(), invalidStreamError);
common.expectsError(
() => stream.pushStream({}, common.mustNotCall()),
- errorObj
+ invalidStreamError
);
- common.expectsError(() => stream.respond(), errorObj);
- common.expectsError(() => stream.rstStream(), errorObj);
- common.expectsError(() => stream.write('data'), errorObj);
+ common.expectsError(() => stream.respond(), invalidStreamError);
+ common.expectsError(() => stream.rstStream(), invalidStreamError);
+ common.expectsError(() => stream.write('data'), invalidStreamError);
+
+ // Test that ERR_HTTP2_INVALID_SESSION is thrown while calling
+ // session operations after the stream session has been destroyed
+ const invalidSessionError = {
+ type: Error,
+ code: 'ERR_HTTP2_INVALID_SESSION',
+ message: 'The session has been destroyed'
+ };
+ common.expectsError(() => stream.session.priority(), invalidSessionError);
+ common.expectsError(() => stream.session.settings(), invalidSessionError);
+ common.expectsError(() => stream.session.shutdown(), invalidSessionError);
+
+ // Wait for setImmediate call from destroy() to complete
+ // so that state.destroyed is set to true
+ setImmediate((session) => {
+ common.expectsError(() => session.priority(), invalidSessionError);
+ common.expectsError(() => session.settings(), invalidSessionError);
+ common.expectsError(() => session.shutdown(), invalidSessionError);
+ common.expectsError(() => session.rstStream(), invalidSessionError);
+ }, stream.session);
})
);