mirror of https://github.com/lukechilds/node.git
Browse Source
The only tests for `addMembership()` and `dropMembership()` (from the `dgram` module) were in `test/internet` which means they almost never get run. This adds checks in `test/parallel`. PR-URL: https://github.com/nodejs/node/pull/6753 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>v4.x
Rich Trott
9 years ago
committed by
Myles Borins
1 changed files with 87 additions and 0 deletions
@ -0,0 +1,87 @@ |
|||
'use strict'; |
|||
|
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
const dgram = require('dgram'); |
|||
const multicastAddress = '224.0.0.114'; |
|||
|
|||
const setup = () => { |
|||
return dgram.createSocket({type: 'udp4', reuseAddr: true}); |
|||
}; |
|||
|
|||
// addMembership() on closed socket should throw
|
|||
{ |
|||
const socket = setup(); |
|||
socket.close(common.mustCall(() => { |
|||
assert.throws(() => { socket.addMembership(multicastAddress); }, |
|||
/Not running/); |
|||
})); |
|||
} |
|||
|
|||
// dropMembership() on closed socket should throw
|
|||
{ |
|||
const socket = setup(); |
|||
socket.close(common.mustCall(() => { |
|||
assert.throws(() => { socket.dropMembership(multicastAddress); }, |
|||
/Not running/); |
|||
})); |
|||
} |
|||
|
|||
// addMembership() with no argument should throw
|
|||
{ |
|||
const socket = setup(); |
|||
assert.throws(() => { socket.addMembership(); }, |
|||
/multicast address must be specified/); |
|||
socket.close(); |
|||
} |
|||
|
|||
// dropMembership() with no argument should throw
|
|||
{ |
|||
const socket = setup(); |
|||
assert.throws(() => { socket.dropMembership(); }, |
|||
/multicast address must be specified/); |
|||
socket.close(); |
|||
} |
|||
|
|||
// addMembership() with invalid multicast address should throw
|
|||
{ |
|||
const socket = setup(); |
|||
assert.throws(() => { socket.addMembership('256.256.256.256'); }, /EINVAL/); |
|||
socket.close(); |
|||
} |
|||
|
|||
// dropMembership() with invalid multicast address should throw
|
|||
{ |
|||
const socket = setup(); |
|||
assert.throws(() => { socket.dropMembership('256.256.256.256'); }, /EINVAL/); |
|||
socket.close(); |
|||
} |
|||
|
|||
// addMembership() with valid socket and multicast address should not throw
|
|||
{ |
|||
const socket = setup(); |
|||
assert.doesNotThrow(() => { socket.addMembership(multicastAddress); }); |
|||
socket.close(); |
|||
} |
|||
|
|||
// dropMembership() without previous addMembership should throw
|
|||
{ |
|||
const socket = setup(); |
|||
assert.throws( |
|||
() => { socket.dropMembership(multicastAddress); }, |
|||
/EADDRNOTAVAIL/ |
|||
); |
|||
socket.close(); |
|||
} |
|||
|
|||
// dropMembership() after addMembership() should not throw
|
|||
{ |
|||
const socket = setup(); |
|||
assert.doesNotThrow( |
|||
() => { |
|||
socket.addMembership(multicastAddress); |
|||
socket.dropMembership(multicastAddress); |
|||
} |
|||
); |
|||
socket.close(); |
|||
} |
Loading…
Reference in new issue