mirror of
https://github.com/nodejs/node.git
synced 2025-05-05 15:32:15 +00:00

Currently the readable and writable arguments are not specified in the req.oncomplete method. Adding and asserting that they are always true (which is always the case for TCP). This might seem unnecessary but it can't hurt to have them to pickup any breaking modifications made to ConnectionWrap::AfterConnect in the future. PR-URL: https://github.com/nodejs/node/pull/8815 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
'use strict';
|
|
require('../common');
|
|
var assert = require('assert');
|
|
var TCP = process.binding('tcp_wrap').TCP;
|
|
var TCPConnectWrap = process.binding('tcp_wrap').TCPConnectWrap;
|
|
var ShutdownWrap = process.binding('stream_wrap').ShutdownWrap;
|
|
|
|
function makeConnection() {
|
|
var client = new TCP();
|
|
|
|
var req = new TCPConnectWrap();
|
|
var 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(0, status);
|
|
assert.strictEqual(client, client_);
|
|
assert.strictEqual(req, req_);
|
|
assert.strictEqual(true, readable);
|
|
assert.strictEqual(true, writable);
|
|
|
|
var shutdownReq = new ShutdownWrap();
|
|
var err = client.shutdown(shutdownReq);
|
|
assert.strictEqual(err, 0);
|
|
|
|
shutdownReq.oncomplete = function(status, client_, req_) {
|
|
assert.strictEqual(0, status);
|
|
assert.strictEqual(client, client_);
|
|
assert.strictEqual(shutdownReq, req_);
|
|
shutdownCount++;
|
|
client.close();
|
|
};
|
|
};
|
|
}
|
|
|
|
/////
|
|
|
|
var connectCount = 0;
|
|
var endCount = 0;
|
|
var shutdownCount = 0;
|
|
|
|
var 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(1, shutdownCount);
|
|
assert.strictEqual(1, connectCount);
|
|
assert.strictEqual(1, endCount);
|
|
});
|