11cb0ef41Sopenharmony_ci'use strict';
21cb0ef41Sopenharmony_ciconst common = require('../common');
31cb0ef41Sopenharmony_ci
41cb0ef41Sopenharmony_ciconst net = require('net');
51cb0ef41Sopenharmony_ciconst { HTTPParser } = process.binding('http_parser');
61cb0ef41Sopenharmony_ci
71cb0ef41Sopenharmony_ciconst server = net.createServer((socket) => {
81cb0ef41Sopenharmony_ci  socket.write('HTTP/1.1 200 OK\r\n');
91cb0ef41Sopenharmony_ci  socket.write('Transfer-Encoding: chunked\r\n\r\n');
101cb0ef41Sopenharmony_ci  setTimeout(() => {
111cb0ef41Sopenharmony_ci    socket.write('1\r\n');
121cb0ef41Sopenharmony_ci    socket.write('\n\r\n');
131cb0ef41Sopenharmony_ci    setTimeout(() => {
141cb0ef41Sopenharmony_ci      socket.write('1\r\n');
151cb0ef41Sopenharmony_ci      socket.write('\n\r\n');
161cb0ef41Sopenharmony_ci      setImmediate(() => {
171cb0ef41Sopenharmony_ci        socket.destroy();
181cb0ef41Sopenharmony_ci        server.close();
191cb0ef41Sopenharmony_ci      });
201cb0ef41Sopenharmony_ci    }, 500);
211cb0ef41Sopenharmony_ci  }, 500);
221cb0ef41Sopenharmony_ci}).listen(0, () => {
231cb0ef41Sopenharmony_ci  const socket = net.connect(server.address().port);
241cb0ef41Sopenharmony_ci  const parser = new HTTPParser(HTTPParser.RESPONSE, false);
251cb0ef41Sopenharmony_ci  parser.initialize(
261cb0ef41Sopenharmony_ci    HTTPParser.RESPONSE,
271cb0ef41Sopenharmony_ci    {},
281cb0ef41Sopenharmony_ci    0,
291cb0ef41Sopenharmony_ci    0,
301cb0ef41Sopenharmony_ci  );
311cb0ef41Sopenharmony_ci
321cb0ef41Sopenharmony_ci  parser[HTTPParser.kOnTimeout] = common.mustNotCall();
331cb0ef41Sopenharmony_ci
341cb0ef41Sopenharmony_ci  parser[HTTPParser.kOnHeaders] = common.mustNotCall();
351cb0ef41Sopenharmony_ci
361cb0ef41Sopenharmony_ci  parser[HTTPParser.kOnExecute] = common.mustCallAtLeast(3);
371cb0ef41Sopenharmony_ci
381cb0ef41Sopenharmony_ci  parser[HTTPParser.kOnHeadersComplete] = common.mustCall();
391cb0ef41Sopenharmony_ci
401cb0ef41Sopenharmony_ci  parser[HTTPParser.kOnBody] = common.mustCall(2);
411cb0ef41Sopenharmony_ci
421cb0ef41Sopenharmony_ci  parser[HTTPParser.kOnMessageComplete] = common.mustNotCall();
431cb0ef41Sopenharmony_ci
441cb0ef41Sopenharmony_ci  parser.consume(socket._handle);
451cb0ef41Sopenharmony_ci});
46