test: check ipv6 support before testing it
authorFedor Indutny <fedor@indutny.com>
Sat, 2 Aug 2014 08:42:42 +0000 (12:42 +0400)
committerTimothy J Fontaine <tjfontaine@gmail.com>
Wed, 13 Aug 2014 18:43:58 +0000 (11:43 -0700)
fix #7983
fix #8049

Signed-off-by: Timothy J Fontaine <tjfontaine@gmail.com>
test/common.js
test/simple/test-dgram-bind-default-address.js
test/simple/test-net-connect-options-ipv6.js
test/simple/test-net-pingpong.js
test/simple/test-net-server-address.js

index 23048bf..b83d981 100644 (file)
@@ -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];
index ae1b472..e7b65c5 100644 (file)
@@ -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;
index 6e4023b..9dd60c1 100644 (file)
@@ -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;
 
index 1e7b668..ff7c97a 100644 (file)
@@ -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');
 });
index 671305f..cc8fbd2 100644 (file)
@@ -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();