'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, 0, ); 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); });