From: Fedor Indutny Date: Sat, 2 Aug 2014 08:42:42 +0000 (+0400) Subject: test: check ipv6 support before testing it X-Git-Tag: upstream/0.12.0~63 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c7b42fe2e5342c903cf36351d1d13b9d43261b70;p=platform%2Fupstream%2Fnodejs.git test: check ipv6 support before testing it fix #7983 fix #8049 Signed-off-by: Timothy J Fontaine --- diff --git a/test/common.js b/test/common.js index 23048bf..b83d981 100644 --- a/test/common.js +++ b/test/common.js @@ -22,6 +22,7 @@ var path = require('path'); var fs = require('fs'); var assert = require('assert'); +var os = require('os'); exports.testDir = path.dirname(__filename); exports.fixturesDir = path.join(exports.testDir, 'fixtures'); @@ -46,6 +47,13 @@ if (process.platform === 'win32') { "faketime"); } +var ifaces = os.networkInterfaces(); +exports.hasIPv6 = Object.keys(ifaces).some(function(name) { + return /lo/.test(name) && ifaces[name].some(function(info) { + return info.family === 'IPv6'; + }); +}); + var util = require('util'); for (var i in util) exports[i] = util[i]; //for (var i in exports) global[i] = exports[i]; diff --git a/test/simple/test-dgram-bind-default-address.js b/test/simple/test-dgram-bind-default-address.js index ae1b472..e7b65c5 100644 --- a/test/simple/test-dgram-bind-default-address.js +++ b/test/simple/test-dgram-bind-default-address.js @@ -29,6 +29,11 @@ dgram.createSocket('udp4').bind(common.PORT + 0, common.mustCall(function() { this.close(); })); +if (!common.hasIPv6) { + console.error('Skipping udp6 part of test, no IPv6 support'); + return; +} + dgram.createSocket('udp6').bind(common.PORT + 1, common.mustCall(function() { assert.equal(this.address().port, common.PORT + 1); var address = this.address().address; diff --git a/test/simple/test-net-connect-options-ipv6.js b/test/simple/test-net-connect-options-ipv6.js index 6e4023b..9dd60c1 100644 --- a/test/simple/test-net-connect-options-ipv6.js +++ b/test/simple/test-net-connect-options-ipv6.js @@ -24,6 +24,11 @@ var assert = require('assert'); var net = require('net'); var dns = require('dns'); +if (!common.hasIPv6) { + console.error('Skipping test, no IPv6 support'); + return; +} + var serverGotEnd = false; var clientGotEnd = false; diff --git a/test/simple/test-net-pingpong.js b/test/simple/test-net-pingpong.js index 1e7b668..ff7c97a 100644 --- a/test/simple/test-net-pingpong.js +++ b/test/simple/test-net-pingpong.js @@ -135,9 +135,13 @@ console.log(common.PIPE); pingPongTest(common.PIPE); pingPongTest(common.PORT); pingPongTest(common.PORT + 1, 'localhost'); -pingPongTest(common.PORT + 2, '::1'); +if (common.hasIPv6) + pingPongTest(common.PORT + 2, '::1'); process.on('exit', function() { - assert.equal(4, tests_run); + if (common.hasIPv6) + assert.equal(4, tests_run); + else + assert.equal(3, tests_run); console.log('done'); }); diff --git a/test/simple/test-net-server-address.js b/test/simple/test-net-server-address.js index 671305f..cc8fbd2 100644 --- a/test/simple/test-net-server-address.js +++ b/test/simple/test-net-server-address.js @@ -57,6 +57,11 @@ server_ipv6.listen(common.PORT, localhost_ipv6, function() { server_ipv6.close(); }); +if (!common.hasIPv6) { + console.error('Skipping ipv6 part of test, no IPv6 support'); + return; +} + // Test without hostname or ip var anycast_ipv6 = '::'; var server1 = net.createServer();