diff options
author | Damien O'Reilly <damienreilly@gmail.com> | 2017-06-11 17:58:53 -0400 |
---|---|---|
committer | Refael Ackermann <refack@gmail.com> | 2017-09-13 11:23:04 -0400 |
commit | 2ac7b433b42dd44b319e1113e045dda8df20a4f8 (patch) | |
tree | b0cda3dadf03b6579ead01317d935ed42a1183fe /test/parallel/test-dgram-socket-buffer-size.js | |
parent | fca7e49e4467077aebac359da016a889be77e4c5 (diff) | |
download | android-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.js | 74 |
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(); + })); +} |