tests: don't assume IPv4 only in remote addr tests

Tests in test-net-remote-address-port.js assume that client and server
sockets always use IPv4. However, depending on the OS and the network
interfaces setup, this is not true. This change makes the test consider
that both IPv4 or IPv6 sockets are valid

Fixes #8096.

Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
This commit is contained in:
Julien Gilli 2014-08-11 13:29:00 -07:00 committed by Timothy J Fontaine
parent c7b42fe2e5
commit 0565d52a71

View File

@ -26,10 +26,16 @@ var net = require('net');
var conns = 0, conns_closed = 0;
var remoteAddrCandidates = [ '127.0.0.1'];
if (common.hasIPv6) remoteAddrCandidates.push('::ffff:127.0.0.1');
var remoteFamilyCandidates = ['IPv4'];
if (common.hasIPv6) remoteFamilyCandidates.push('IPv6');
var server = net.createServer(function(socket) {
conns++;
assert.equal('127.0.0.1', socket.remoteAddress);
assert.equal('IPv4', socket.remoteFamily);
assert.notEqual(-1, remoteAddrCandidates.indexOf(socket.remoteAddress));
assert.notEqual(-1, remoteFamilyCandidates.indexOf(socket.remoteFamily));
assert.ok(socket.remotePort);
assert.notEqual(socket.remotePort, common.PORT);
socket.on('end', function() {
@ -42,14 +48,14 @@ server.listen(common.PORT, 'localhost', function() {
var client = net.createConnection(common.PORT, 'localhost');
var client2 = net.createConnection(common.PORT);
client.on('connect', function() {
assert.equal('127.0.0.1', client.remoteAddress);
assert.equal('IPv4', client.remoteFamily);
assert.notEqual(-1, remoteAddrCandidates.indexOf(client.remoteAddress));
assert.notEqual(-1, remoteFamilyCandidates.indexOf(client.remoteFamily));
assert.equal(common.PORT, client.remotePort);
client.end();
});
client2.on('connect', function() {
assert.equal('127.0.0.1', client2.remoteAddress);
assert.equal('IPv4', client2.remoteFamily);
assert.notEqual(-1, remoteAddrCandidates.indexOf(client2.remoteAddress));
assert.notEqual(-1, remoteFamilyCandidates.indexOf(client2.remoteFamily));
assert.equal(common.PORT, client2.remotePort);
client2.end();
});