aboutsummaryrefslogtreecommitdiff
path: root/test/parallel/test-dgram-socket-buffer-size.js
diff options
context:
space:
mode:
authorDamien O'Reilly <damienreilly@gmail.com>2017-06-11 17:58:53 -0400
committerRefael Ackermann <refack@gmail.com>2017-09-13 11:23:04 -0400
commit2ac7b433b42dd44b319e1113e045dda8df20a4f8 (patch)
treeb0cda3dadf03b6579ead01317d935ed42a1183fe /test/parallel/test-dgram-socket-buffer-size.js
parentfca7e49e4467077aebac359da016a889be77e4c5 (diff)
downloadandroid-node-v8-2ac7b433b42dd44b319e1113e045dda8df20a4f8.tar.gz
android-node-v8-2ac7b433b42dd44b319e1113e045dda8df20a4f8.tar.bz2
android-node-v8-2ac7b433b42dd44b319e1113e045dda8df20a4f8.zip
dgram: support for setting socket buffer size
* setRecvBufferSize(int) and setSendBufferSize(int) * added docs for send/receive buffer sizes * Added options support to set buffer sizes in dgram.createSocket(). PR-URL: https://github.com/nodejs/node/pull/13623 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'test/parallel/test-dgram-socket-buffer-size.js')
-rw-r--r--test/parallel/test-dgram-socket-buffer-size.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/test/parallel/test-dgram-socket-buffer-size.js b/test/parallel/test-dgram-socket-buffer-size.js
new file mode 100644
index 0000000000..13fbd4fb4b
--- /dev/null
+++ b/test/parallel/test-dgram-socket-buffer-size.js
@@ -0,0 +1,74 @@
+'use strict';
+
+const common = require('../common');
+const assert = require('assert');
+const dgram = require('dgram');
+
+{
+ // Should throw error if the socket is never bound.
+ const errorObj = {
+ code: 'ERR_SOCKET_BUFFER_SIZE',
+ type: Error,
+ message: /^Could not get or set buffer size:.*$/
+ };
+
+ const socket = dgram.createSocket('udp4');
+
+ assert.throws(() => {
+ socket.setRecvBufferSize(8192);
+ }, common.expectsError(errorObj));
+
+ assert.throws(() => {
+ socket.setSendBufferSize(8192);
+ }, common.expectsError(errorObj));
+
+ assert.throws(() => {
+ socket.getRecvBufferSize();
+ }, common.expectsError(errorObj));
+
+ assert.throws(() => {
+ socket.getSendBufferSize();
+ }, common.expectsError(errorObj));
+}
+
+{
+ // Should throw error if invalid buffer size is specified
+ const errorObj = {
+ code: 'ERR_SOCKET_BAD_BUFFER_SIZE',
+ type: TypeError,
+ message: /^Buffer size must be a positive integer$/
+ };
+
+ const badBufferSizes = [-1, Infinity, 'Doh!'];
+
+ const socket = dgram.createSocket('udp4');
+
+ socket.bind(common.mustCall(() => {
+ badBufferSizes.forEach((badBufferSize) => {
+ assert.throws(() => {
+ socket.setRecvBufferSize(badBufferSize);
+ }, common.expectsError(errorObj));
+
+ assert.throws(() => {
+ socket.setSendBufferSize(badBufferSize);
+ }, common.expectsError(errorObj));
+ });
+ socket.close();
+ }));
+}
+
+{
+ // Can set and get buffer sizes after binding the socket.
+ const socket = dgram.createSocket('udp4');
+
+ socket.bind(common.mustCall(() => {
+ socket.setRecvBufferSize(10000);
+ socket.setSendBufferSize(10000);
+
+ // note: linux will double the buffer size
+ const expectedBufferSize = common.isLinux ? 20000 : 10000;
+ assert.strictEqual(socket.getRecvBufferSize(), expectedBufferSize);
+ assert.strictEqual(socket.getSendBufferSize(), expectedBufferSize);
+ socket.close();
+ }));
+}