%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
// Flags: --expose-internals 'use strict'; require('../common'); const assert = require('assert'); const { internalBinding } = require('internal/test/binding'); const { TCP, constants: TCPConstants, TCPConnectWrap } = internalBinding('tcp_wrap'); const { ShutdownWrap } = internalBinding('stream_wrap'); function makeConnection() { const client = new TCP(TCPConstants.SOCKET); const req = new TCPConnectWrap(); const err = client.connect(req, '127.0.0.1', this.address().port); assert.strictEqual(err, 0); req.oncomplete = function(status, client_, req_, readable, writable) { assert.strictEqual(status, 0); assert.strictEqual(client_, client); assert.strictEqual(req_, req); assert.strictEqual(readable, true); assert.strictEqual(writable, true); const shutdownReq = new ShutdownWrap(); const err = client.shutdown(shutdownReq); assert.strictEqual(err, 0); shutdownReq.oncomplete = function(status, client_, error) { assert.strictEqual(status, 0); assert.strictEqual(client_, client); assert.strictEqual(error, undefined); shutdownCount++; client.close(); }; }; } let connectCount = 0; let endCount = 0; let shutdownCount = 0; const server = require('net').Server(function(s) { connectCount++; s.resume(); s.on('end', function() { endCount++; s.destroy(); server.close(); }); }); server.listen(0, makeConnection); process.on('exit', function() { assert.strictEqual(shutdownCount, 1); assert.strictEqual(connectCount, 1); assert.strictEqual(endCount, 1); });