test: refactor test-net-connect-buffer

- Use arrow functions, `common.mustCall()`
- Remove redundant `console.log()`s/turn them into assertions
- Use `common.expectsError()`

PR-URL: https://github.com/nodejs/node/pull/17710
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jon Moss <me@jonathanmoss.me>
This commit is contained in:
Anna Henningsen 2017-12-13 18:31:00 +01:00 committed by Jon Moss
parent 410ce2164e
commit 7352bf2f7c

View File

@ -20,68 +20,59 @@
// USE OR OTHER DEALINGS IN THE SOFTWARE. // USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict'; 'use strict';
require('../common'); const common = require('../common');
const assert = require('assert'); const assert = require('assert');
const net = require('net'); const net = require('net');
let dataWritten = false; const tcp = net.Server(common.mustCall((s) => {
let connectHappened = false;
const tcp = net.Server(function(s) {
tcp.close(); tcp.close();
console.log('tcp server connection');
let buf = ''; let buf = '';
s.setEncoding('utf8');
s.on('data', function(d) { s.on('data', function(d) {
buf += d; buf += d;
}); });
s.on('end', function() { s.on('end', function() {
console.error('SERVER: end', buf.toString()); console.error('SERVER: end', buf);
assert.strictEqual(buf, "L'État, c'est moi"); assert.strictEqual(buf, "L'État, c'est moi");
console.log('tcp socket disconnect');
s.end(); s.end();
}); });
}));
s.on('error', function(e) { tcp.listen(0, common.mustCall(function() {
console.log(`tcp server-side error: ${e.message}`);
process.exit(1);
});
});
tcp.listen(0, function() {
const socket = net.Stream({ highWaterMark: 0 }); const socket = net.Stream({ highWaterMark: 0 });
console.log('Connecting to socket '); let connected = false;
socket.connect(this.address().port, common.mustCall(() => connected = true));
socket.connect(this.address().port, function() { assert.strictEqual(socket.connecting, true);
console.log('socket connected'); assert.strictEqual(socket.readyState, 'opening');
connectHappened = true;
});
console.log(`connecting = ${socket.connecting}`);
assert.strictEqual('opening', socket.readyState);
// Make sure that anything besides a buffer or a string throws. // Make sure that anything besides a buffer or a string throws.
[null, common.expectsError(() => socket.write(null),
true, {
false, code: 'ERR_STREAM_NULL_VALUES',
undefined, type: TypeError,
1, message: 'May not write null values to stream'
1.0, });
1 / 0, [
+Infinity, true,
-Infinity, false,
[], undefined,
{} 1,
].forEach(function(v) { 1.0,
function f() { 1 / 0,
console.error('write', v); +Infinity,
socket.write(v); -Infinity,
} [],
assert.throws(f, TypeError); {}
].forEach((v) => {
common.expectsError(() => socket.write(v), {
code: 'ERR_INVALID_ARG_TYPE',
type: TypeError,
message: 'The "chunk" argument must be one of type string or Buffer'
});
}); });
// Write a string that contains a multi-byte character sequence to test that // Write a string that contains a multi-byte character sequence to test that
@ -92,26 +83,15 @@ tcp.listen(0, function() {
// We're still connecting at this point so the datagram is first pushed onto // We're still connecting at this point so the datagram is first pushed onto
// the connect queue. Make sure that it's not added to `bytesWritten` again // the connect queue. Make sure that it's not added to `bytesWritten` again
// when the actual write happens. // when the actual write happens.
const r = socket.write(a, function(er) { const r = socket.write(a, common.mustCall((er) => {
console.error('write cb'); console.error('write cb');
dataWritten = true; assert.ok(connected);
assert.ok(connectHappened); assert.strictEqual(socket.bytesWritten, Buffer.from(a + b).length);
console.error('socket.bytesWritten', socket.bytesWritten); }));
//assert.strictEqual(socket.bytesWritten, Buffer.from(a + b).length);
console.error('data written');
});
console.error('socket.bytesWritten', socket.bytesWritten);
console.error('write returned', r);
assert.strictEqual(socket.bytesWritten, Buffer.from(a).length); assert.strictEqual(socket.bytesWritten, Buffer.from(a).length);
assert.strictEqual(r, false);
assert.strictEqual(false, r);
socket.end(b); socket.end(b);
assert.strictEqual('opening', socket.readyState); assert.strictEqual(socket.readyState, 'opening');
}); }));
process.on('exit', function() {
assert.ok(connectHappened);
assert.ok(dataWritten);
});