mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
http2: add tests for cancel event while client is paused reading
PR-URL: https://github.com/nodejs/node/pull/39622 Refs: https://github.com/nodejs/node/pull/39423 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Beth Griggs <bgriggs@redhat.com>
This commit is contained in:
36
test/parallel/test-http2-cancel-while-client-reading.js
Normal file
36
test/parallel/test-http2-cancel-while-client-reading.js
Normal file
@@ -0,0 +1,36 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
const fixtures = require('../common/fixtures');
|
||||
if (!common.hasCrypto) {
|
||||
common.skip('missing crypto');
|
||||
}
|
||||
|
||||
const http2 = require('http2');
|
||||
const key = fixtures.readKey('agent1-key.pem', 'binary');
|
||||
const cert = fixtures.readKey('agent1-cert.pem', 'binary');
|
||||
|
||||
const server = http2.createSecureServer({ key, cert });
|
||||
|
||||
let client_stream;
|
||||
|
||||
server.on('stream', common.mustCall(function(stream) {
|
||||
stream.resume();
|
||||
stream.on('data', function(chunk) {
|
||||
stream.write(chunk);
|
||||
client_stream.pause();
|
||||
client_stream.close(http2.constants.NGHTTP2_CANCEL);
|
||||
});
|
||||
}));
|
||||
|
||||
server.listen(0, function() {
|
||||
const client = http2.connect(`https://localhost:${server.address().port}`,
|
||||
{ rejectUnauthorized: false }
|
||||
);
|
||||
client_stream = client.request({ ':method': 'POST' });
|
||||
client_stream.on('close', common.mustCall(() => {
|
||||
client.close();
|
||||
server.close();
|
||||
}));
|
||||
client_stream.resume();
|
||||
client_stream.write(Buffer.alloc(1024 * 1024));
|
||||
});
|
||||
Reference in New Issue
Block a user