summaryrefslogtreecommitdiff
path: root/test/parallel
diff options
context:
space:
mode:
authorMatteo Collina <hello@matteocollina.com>2016-02-24 09:12:59 +0100
committerMatteo Collina <hello@matteocollina.com>2016-02-28 11:25:36 +0100
commit725ffdb9b73305dbff2e14db0e8b8fc5aa001c41 (patch)
tree482662c33b988b0595718e501a6abbaf0fd4d8eb /test/parallel
parentffdc046e5c2e80cdde31db72554dcf5196ed6d4b (diff)
downloadnode-new-725ffdb9b73305dbff2e14db0e8b8fc5aa001c41.tar.gz
dgram: handle default address case when offset and length are specified
Fixes a regression introduced by: https://github.com/nodejs/node/pull/4374. Adds a new test to avoid similar issue in the future. The test is disabled on windows, because this feature never worked there. Fixes: https://github.com/nodejs/node/issues/5398 Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Evan Lucas <evanlucas@me.com>
Diffstat (limited to 'test/parallel')
-rw-r--r--test/parallel/test-dgram-send-default-host.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/parallel/test-dgram-send-default-host.js b/test/parallel/test-dgram-send-default-host.js
new file mode 100644
index 0000000000..0c50e70f43
--- /dev/null
+++ b/test/parallel/test-dgram-send-default-host.js
@@ -0,0 +1,43 @@
+'use strict';
+
+const common = require('../common');
+const assert = require('assert');
+const dgram = require('dgram');
+
+if (common.isWindows) {
+ // on Windows this test will fail
+ // see https://github.com/nodejs/node/pull/5407
+ console.log('1..0 # Skipped: This test does not apply on Windows.');
+ return;
+}
+
+const client = dgram.createSocket('udp4');
+
+const timer = setTimeout(function() {
+ throw new Error('Timeout');
+}, common.platformTimeout(2000));
+
+const toSend = [new Buffer(256), new Buffer(256), new Buffer(256), 'hello'];
+
+toSend[0].fill('x');
+toSend[1].fill('y');
+toSend[2].fill('z');
+
+client.on('listening', function() {
+ client.send(toSend[0], 0, toSend[0].length, common.PORT);
+ client.send(toSend[1], common.PORT);
+ client.send([toSend[2]], common.PORT);
+ client.send(toSend[3], 0, toSend[3].length, common.PORT);
+});
+
+client.on('message', function(buf, info) {
+ const expected = toSend.shift().toString();
+ assert.ok(buf.toString() === expected, 'message was received correctly');
+
+ if (toSend.length === 0) {
+ client.close();
+ clearTimeout(timer);
+ }
+});
+
+client.bind(common.PORT);