node/test/parallel/test-http-parser-timeout-reset.js
Robert Nagy 8d8090b9bb
test: fix flaky http-parser-timeout-reset
Refs: https://github.com/nodejs/node/pull/34578#issuecomment-667941698

PR-URL: https://github.com/nodejs/node/pull/34609
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
2020-08-03 13:47:33 -04:00

47 lines
1.1 KiB
JavaScript

'use strict';
const common = require('../common');
const net = require('net');
const { HTTPParser } = process.binding('http_parser');
const server = net.createServer((socket) => {
socket.write('HTTP/1.1 200 OK\r\n');
socket.write('Transfer-Encoding: chunked\r\n\r\n');
setTimeout(() => {
socket.write('1\r\n');
socket.write('\n\r\n');
setTimeout(() => {
socket.write('1\r\n');
socket.write('\n\r\n');
setImmediate(() => {
socket.destroy();
server.close();
});
}, 500);
}, 500);
}).listen(0, () => {
const socket = net.connect(server.address().port);
const parser = new HTTPParser(HTTPParser.RESPONSE, false);
parser.initialize(
HTTPParser.RESPONSE,
{},
0,
false,
1e3
);
parser[HTTPParser.kOnTimeout] = common.mustNotCall();
parser[HTTPParser.kOnHeaders] = common.mustNotCall();
parser[HTTPParser.kOnExecute] = common.mustCallAtLeast(3);
parser[HTTPParser.kOnHeadersComplete] = common.mustCall();
parser[HTTPParser.kOnBody] = common.mustCall(2);
parser[HTTPParser.kOnMessageComplete] = common.mustNotCall();
parser.consume(socket._handle);
});