Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit b66cba0

Browse filesBrowse files
jasnellBethGriggs
authored andcommitted
test: add test-http2-large-file sequential test
Refs: #19141 Backport-PR-URL: #22850 PR-URL: #22254 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: George Adams <george.adams@uk.ibm.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent 5c3edd3 commit b66cba0
Copy full SHA for b66cba0

File tree

Expand file treeCollapse file tree

1 file changed

+39
-0
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+39
-0
lines changed
Open diff view settings
Collapse file
+39Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
'use strict';
2+
3+
// Test to ensure sending a large stream with a large initial window size works
4+
// See: https://github.com/nodejs/node/issues/19141
5+
6+
const common = require('../common');
7+
if (!common.hasCrypto)
8+
common.skip('missing crypto');
9+
10+
const http2 = require('http2');
11+
12+
const server = http2.createServer({ settings: { initialWindowSize: 6553500 } });
13+
server.on('stream', (stream) => {
14+
stream.resume();
15+
stream.respond();
16+
stream.end('ok');
17+
});
18+
19+
server.listen(0, common.mustCall(() => {
20+
let remaining = 1e8;
21+
const chunk = 1e6;
22+
const client = http2.connect(`http://localhost:${server.address().port}`,
23+
{ settings: { initialWindowSize: 6553500 } });
24+
const request = client.request({ ':method': 'POST' });
25+
function writeChunk() {
26+
if (remaining > 0) {
27+
remaining -= chunk;
28+
request.write(Buffer.alloc(chunk, 'a'), writeChunk);
29+
} else {
30+
request.end();
31+
}
32+
}
33+
writeChunk();
34+
request.on('close', common.mustCall(() => {
35+
client.close();
36+
server.close();
37+
}));
38+
request.resume();
39+
}));

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.