%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
'use strict'; const common = require('../common'); const assert = require('assert'); const net = require('net'); // Regression test for https://github.com/nodejs/node/issues/19562: // Writing to a socket first tries to push through as much data as possible // without blocking synchronously, and, if that is not enough, queues more // data up for asynchronous writing. // Check that `bytesWritten` accounts for both parts of a write. const N = 10000000; { // Variant 1: Write a Buffer. const server = net.createServer(common.mustCall((socket) => { socket.end(Buffer.alloc(N), common.mustCall(() => { assert.strictEqual(socket.bytesWritten, N); })); assert.strictEqual(socket.bytesWritten, N); })).listen(0, common.mustCall(() => { const client = net.connect(server.address().port); client.resume(); client.on('close', common.mustCall(() => { assert.strictEqual(client.bytesRead, N); server.close(); })); })); } { // Variant 2: Write a string. const server = net.createServer(common.mustCall((socket) => { socket.end('a'.repeat(N), common.mustCall(() => { assert.strictEqual(socket.bytesWritten, N); })); assert.strictEqual(socket.bytesWritten, N); })).listen(0, common.mustCall(() => { const client = net.connect(server.address().port); client.resume(); client.on('close', common.mustCall(() => { assert.strictEqual(client.bytesRead, N); server.close(); })); })); } { // Variant 2: writev() with mixed data. const server = net.createServer(common.mustCall((socket) => { socket.cork(); socket.write('a'.repeat(N)); assert.strictEqual(socket.bytesWritten, N); socket.write(Buffer.alloc(N)); assert.strictEqual(socket.bytesWritten, 2 * N); socket.end('', common.mustCall(() => { assert.strictEqual(socket.bytesWritten, 2 * N); })); socket.uncork(); })).listen(0, common.mustCall(() => { const client = net.connect(server.address().port); client.resume(); client.on('close', common.mustCall(() => { assert.strictEqual(client.bytesRead, 2 * N); server.close(); })); })); }