Skip to content

Commit

Permalink
test: deflake test-http-header-overflow
Browse files Browse the repository at this point in the history
Skip the network and push the data directly to the receiving socket
so that it is guaranteed to be received as a single chunk.

Fixes: #46291
PR-URL: #54978
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: James M Snell <[email protected]>
  • Loading branch information
lpinca authored and marco-ippolito committed Nov 17, 2024
1 parent f25760c commit 93a098c
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions test/parallel/test-http-header-overflow.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// Flags: --expose-internals

'use strict';
const { expectsError, mustCall } = require('../common');
const assert = require('assert');
Expand All @@ -10,11 +8,10 @@ const CRLF = '\r\n';
const DUMMY_HEADER_NAME = 'Cookie: ';
const DUMMY_HEADER_VALUE = 'a'.repeat(
// Plus one is to make it 1 byte too big
maxHeaderSize - DUMMY_HEADER_NAME.length + 2
maxHeaderSize - DUMMY_HEADER_NAME.length + 1
);
const PAYLOAD_GET = 'GET /blah HTTP/1.1';
const PAYLOAD = PAYLOAD_GET + CRLF +
DUMMY_HEADER_NAME + DUMMY_HEADER_VALUE + CRLF.repeat(2);
const PAYLOAD = PAYLOAD_GET + CRLF + DUMMY_HEADER_NAME + DUMMY_HEADER_VALUE;

const server = createServer();

Expand All @@ -23,18 +20,19 @@ server.on('connection', mustCall((socket) => {
name: 'Error',
message: 'Parse Error: Header overflow',
code: 'HPE_HEADER_OVERFLOW',
bytesParsed: maxHeaderSize + PAYLOAD_GET.length + (CRLF.length * 2) + 1,
bytesParsed: PAYLOAD.length,
rawPacket: Buffer.from(PAYLOAD)
}));

// The data is not sent from the client to ensure that it is received as a
// single chunk.
socket.push(PAYLOAD);
}));

server.listen(0, mustCall(() => {
const c = createConnection(server.address().port);
let received = '';

c.on('connect', mustCall(() => {
c.write(PAYLOAD);
}));
c.on('data', mustCall((data) => {
received += data.toString();
}));
Expand Down

0 comments on commit 93a098c

Please sign in to comment.