[net2] add unix server to ping-pong test
This commit is contained in:
parent
8d0f756158
commit
20eec646b3
12
lib/net.js
12
lib/net.js
@ -342,7 +342,7 @@ Socket.prototype.address = function () {
|
|||||||
|
|
||||||
|
|
||||||
Socket.prototype.setNoDelay = function (v) {
|
Socket.prototype.setNoDelay = function (v) {
|
||||||
setNoDelay(this.fd, v);
|
if (this.type == 'tcp') setNoDelay(this.fd, v);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -454,7 +454,7 @@ Server.prototype.listen = function () {
|
|||||||
self.emit("listening");
|
self.emit("listening");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(arguments[0]) == 'string' && arguments.length == 1) {
|
if (typeof(arguments[0]) == 'string') {
|
||||||
// the first argument specifies a path
|
// the first argument specifies a path
|
||||||
self.fd = socket('unix');
|
self.fd = socket('unix');
|
||||||
self.type = 'unix';
|
self.type = 'unix';
|
||||||
@ -484,18 +484,20 @@ Server.prototype.listen = function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (arguments.length == 0) {
|
} else if (!arguments[0]) {
|
||||||
|
// Don't bind(). OS will assign a port with INADDR_ANY.
|
||||||
|
// The port can be found with server.address()
|
||||||
self.fd = socket('tcp');
|
self.fd = socket('tcp');
|
||||||
self.type = 'tcp';
|
self.type = 'tcp';
|
||||||
// Don't bind(). OS will assign a port with INADDR_ANY. The port will be
|
|
||||||
// passed to the 'listening' event.
|
|
||||||
doListen();
|
doListen();
|
||||||
} else {
|
} else {
|
||||||
// the first argument is the port, the second an IP
|
// the first argument is the port, the second an IP
|
||||||
self.fd = socket('tcp');
|
self.fd = socket('tcp');
|
||||||
self.type = 'tcp';
|
self.type = 'tcp';
|
||||||
var port = arguments[0];
|
var port = arguments[0];
|
||||||
|
debug("starting tcp server on port " + port);
|
||||||
lookupDomainName(arguments[1], function (ip) {
|
lookupDomainName(arguments[1], function (ip) {
|
||||||
|
debug("starting tcp server on ip " + ip);
|
||||||
bind(self.fd, port, ip);
|
bind(self.fd, port, ip);
|
||||||
doListen();
|
doListen();
|
||||||
});
|
});
|
||||||
|
@ -32,8 +32,6 @@ var server = new net.Server(function (socket) {
|
|||||||
sys.puts("server-side socket drain");
|
sys.puts("server-side socket drain");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
server.listen("/tmp/node.sock");
|
|
||||||
sys.puts("server fd: " + server.fd);
|
|
||||||
|
|
||||||
server.addListener("listening", function () {
|
server.addListener("listening", function () {
|
||||||
var c = net.createConnection("/tmp/node.sock");
|
var c = net.createConnection("/tmp/node.sock");
|
||||||
@ -56,3 +54,5 @@ server.addListener("listening", function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
server.listen("/tmp/node.sock");
|
||||||
|
sys.puts("server fd: " + server.fd);
|
||||||
|
@ -7,16 +7,13 @@ process.Buffer.prototype.toString = function () {
|
|||||||
|
|
||||||
var tests_run = 0;
|
var tests_run = 0;
|
||||||
|
|
||||||
function pingPongTest (port, host, on_complete) {
|
function pingPongTest (port, host) {
|
||||||
var N = 1000;
|
var N = 1000;
|
||||||
var count = 0;
|
var count = 0;
|
||||||
var sent_final_ping = false;
|
var sent_final_ping = false;
|
||||||
|
|
||||||
var server = net.createServer(function (socket) {
|
var server = net.createServer(function (socket) {
|
||||||
puts("connection: " + socket.remoteAddress);
|
puts("connection: " + socket.remoteAddress);
|
||||||
|
|
||||||
assert.equal(true, socket.remoteAddress !== null);
|
|
||||||
assert.equal(true, socket.remoteAddress !== undefined);
|
|
||||||
assert.equal(server, socket.server);
|
assert.equal(server, socket.server);
|
||||||
|
|
||||||
socket.setNoDelay();
|
socket.setNoDelay();
|
||||||
@ -44,7 +41,9 @@ function pingPongTest (port, host, on_complete) {
|
|||||||
socket.server.close();
|
socket.server.close();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
server.listen(port, host);
|
|
||||||
|
server.addListener("listening", function () {
|
||||||
|
puts("server listening on " + port + " " + host);
|
||||||
|
|
||||||
var client = net.createConnection(port, host);
|
var client = net.createConnection(port, host);
|
||||||
|
|
||||||
@ -81,16 +80,19 @@ function pingPongTest (port, host, on_complete) {
|
|||||||
client.addListener("close", function () {
|
client.addListener("close", function () {
|
||||||
assert.equal(N+1, count);
|
assert.equal(N+1, count);
|
||||||
assert.equal(true, sent_final_ping);
|
assert.equal(true, sent_final_ping);
|
||||||
if (on_complete) on_complete();
|
|
||||||
tests_run += 1;
|
tests_run += 1;
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
server.listen(port, host);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* All are run at once, so run on different ports */
|
/* All are run at once, so run on different ports */
|
||||||
pingPongTest(20989, "localhost");
|
pingPongTest(20989, "localhost");
|
||||||
pingPongTest(20988, null);
|
pingPongTest(20988);
|
||||||
pingPongTest(20997, "::1");
|
pingPongTest(20997, "::1");
|
||||||
|
pingPongTest("/tmp/pingpong.sock");
|
||||||
|
|
||||||
process.addListener("exit", function () {
|
process.addListener("exit", function () {
|
||||||
assert.equal(3, tests_run);
|
assert.equal(4, tests_run);
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user