Skip to content

Commit

Permalink
test: refactor test-dgram-setBroadcast.js
Browse files Browse the repository at this point in the history
This test wasn't actually working, as sockets were being closed,
allowing the test to exit before any assertions were actually
run. This commit refactors the test to maintain the same intended
semantics.

PR-URL: #11252
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
cjihrig authored and jasnell committed Feb 11, 2017
1 parent 5cd9d76 commit fe2b5f0
Showing 1 changed file with 15 additions and 29 deletions.
44 changes: 15 additions & 29 deletions test/parallel/test-dgram-setBroadcast.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,22 @@ const common = require('../common');
const assert = require('assert');
const dgram = require('dgram');

const setup = () => {
return dgram.createSocket({type: 'udp4', reuseAddr: true});
};
{
// Should throw EBADF if the socket is never bound.
const socket = dgram.createSocket('udp4');

const teardown = (socket) => {
if (socket.close)
socket.close();
};

const runTest = (testCode, expectError) => {
const socket = setup();
const assertion = expectError ? assert.throws : assert.doesNotThrow;
const wrapped = () => { testCode(socket); };
assertion(wrapped, expectError);
teardown(socket);
};
assert.throws(() => {
socket.setBroadcast(true);
}, /^Error: setBroadcast EBADF$/);
}

// Should throw EBADF if socket is never bound.
runTest((socket) => { socket.setBroadcast(true); }, /EBADF/);
{
// Can call setBroadcast() after binding the socket.
const socket = dgram.createSocket('udp4');

// Should not throw if broadcast set to false after binding.
runTest((socket) => {
socket.bind(0, common.localhostIPv4, () => {
socket.setBroadcast(false);
});
});

// Should not throw if broadcast set to true after binding.
runTest((socket) => {
socket.bind(0, common.localhostIPv4, () => {
socket.bind(0, common.mustCall(() => {
socket.setBroadcast(true);
});
});
socket.setBroadcast(false);
socket.close();
}));
}

0 comments on commit fe2b5f0

Please sign in to comment.