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 <ronagy@icloud.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
lpinca authored and jasnell committed Sep 21, 2024
1 parent beb1892 commit a9677db
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 a9677db

Please sign in to comment.