diff --git a/test/simple/test-net-connect-options-ipv6.js b/test/simple/test-net-connect-options-ipv6.js index d5be324e23..6e4023b72a 100644 --- a/test/simple/test-net-connect-options-ipv6.js +++ b/test/simple/test-net-connect-options-ipv6.js @@ -22,42 +22,51 @@ var common = require('../common'); var assert = require('assert'); var net = require('net'); +var dns = require('dns'); var serverGotEnd = false; var clientGotEnd = false; -var server = net.createServer({allowHalfOpen: true}, function(socket) { - socket.resume(); - socket.on('end', function() { - serverGotEnd = true; - }); - socket.end(); -}); +dns.lookup('localhost', 6, function(err) { + if (err) { + console.error('Looks like IPv6 is not really supported'); + console.error(err); + return; + } -server.listen(common.PORT, '::1', function() { - var client = net.connect({ - host: 'localhost', - port: common.PORT, - family: 6, - allowHalfOpen: true - }, function() { - console.error('client connect cb'); - client.resume(); - client.on('end', function() { - clientGotEnd = true; - setTimeout(function() { - assert(client.writable); - client.end(); - }, 10); + var server = net.createServer({allowHalfOpen: true}, function(socket) { + socket.resume(); + socket.on('end', function() { + serverGotEnd = true; }); - client.on('close', function() { - server.close(); + socket.end(); + }); + + server.listen(common.PORT, '::1', function() { + var client = net.connect({ + host: 'localhost', + port: common.PORT, + family: 6, + allowHalfOpen: true + }, function() { + console.error('client connect cb'); + client.resume(); + client.on('end', function() { + clientGotEnd = true; + setTimeout(function() { + assert(client.writable); + client.end(); + }, 10); + }); + client.on('close', function() { + server.close(); + }); }); }); -}); -process.on('exit', function() { - console.error('exit', serverGotEnd, clientGotEnd); - assert(serverGotEnd); - assert(clientGotEnd); + process.on('exit', function() { + console.error('exit', serverGotEnd, clientGotEnd); + assert(serverGotEnd); + assert(clientGotEnd); + }); });