node/test/parallel/test-dgram-bind-default-address.js
Johan Bergström c15e81afdd test: Introduce knowledge of FreeBSD jails
FreeBSD jails act differently than your average vm or similar
application container. All routing passes through one ip address,
which makes things like localhost or 0.0.0.0 resolve differently.

Introduce a helper that allows us to verify if we're in a jail
and another one for returning an ip address for localhost.

Also, skip one test instead of trading additional complexity
in common.js for one specific user scenario.

PR-URL: https://github.com/iojs/io.js/pull/1167
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-19 09:11:50 +11:00

29 lines
862 B
JavaScript

var common = require('../common');
var assert = require('assert');
var dgram = require('dgram');
// skip test in FreeBSD jails since 0.0.0.0 will resolve to default interface
if (common.inFreeBSDJail) {
console.log('1..0 # Skipped: In a FreeBSD jail');
process.exit();
}
dgram.createSocket('udp4').bind(common.PORT + 0, common.mustCall(function() {
assert.equal(this.address().port, common.PORT + 0);
assert.equal(this.address().address, '0.0.0.0');
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;
if (address === '::ffff:0.0.0.0')
address = '::';
assert.equal(address, '::');
this.close();
}));