%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
// This test is designed to fail with a segmentation fault in Node.js 4.1.0 and // execute without issues in Node.js 4.1.1 and up. 'use strict'; const common = require('../common'); const assert = require('assert'); const httpCommon = require('_http_common'); const { HTTPParser } = require('_http_common'); const net = require('net'); const COUNT = httpCommon.parsers.max + 1; const parsers = new Array(COUNT); for (let i = 0; i < parsers.length; i++) parsers[i] = httpCommon.parsers.alloc(); let gotRequests = 0; let gotResponses = 0; function execAndClose() { if (parsers.length === 0) return; process.stdout.write('.'); const parser = parsers.pop(); parser.initialize(HTTPParser.RESPONSE, {}); const socket = net.connect(common.PORT); socket.on('error', (e) => { // If SmartOS and ECONNREFUSED, then retry. See // https://github.com/nodejs/node/issues/2663. if (common.isSunOS && e.code === 'ECONNREFUSED') { parsers.push(parser); parser.reused = true; socket.destroy(); setImmediate(execAndClose); return; } throw e; }); parser.consume(socket._handle); parser.onIncoming = function onIncoming() { process.stdout.write('+'); gotResponses++; parser.unconsume(); httpCommon.freeParser(parser); socket.destroy(); setImmediate(execAndClose); }; } const server = net.createServer(function(c) { if (++gotRequests === COUNT) server.close(); c.end('HTTP/1.1 200 OK\r\n\r\n', function() { c.destroySoon(); }); }).listen(common.PORT, execAndClose); process.on('exit', function() { assert.strictEqual(gotResponses, COUNT); });