1'use strict'; 2const common = require('../common'); 3 4const net = require('net'); 5const { HTTPParser } = process.binding('http_parser'); 6 7const server = net.createServer((socket) => { 8 socket.write('HTTP/1.1 200 OK\r\n'); 9 socket.write('Transfer-Encoding: chunked\r\n\r\n'); 10 setTimeout(() => { 11 socket.write('1\r\n'); 12 socket.write('\n\r\n'); 13 setTimeout(() => { 14 socket.write('1\r\n'); 15 socket.write('\n\r\n'); 16 setImmediate(() => { 17 socket.destroy(); 18 server.close(); 19 }); 20 }, 500); 21 }, 500); 22}).listen(0, () => { 23 const socket = net.connect(server.address().port); 24 const parser = new HTTPParser(HTTPParser.RESPONSE, false); 25 parser.initialize( 26 HTTPParser.RESPONSE, 27 {}, 28 0, 29 0, 30 ); 31 32 parser[HTTPParser.kOnTimeout] = common.mustNotCall(); 33 34 parser[HTTPParser.kOnHeaders] = common.mustNotCall(); 35 36 parser[HTTPParser.kOnExecute] = common.mustCallAtLeast(3); 37 38 parser[HTTPParser.kOnHeadersComplete] = common.mustCall(); 39 40 parser[HTTPParser.kOnBody] = common.mustCall(2); 41 42 parser[HTTPParser.kOnMessageComplete] = common.mustNotCall(); 43 44 parser.consume(socket._handle); 45}); 46