| // Flags: --expose-internals |
| 'use strict'; |
| const common = require('../common'); |
| const assert = require('assert'); |
| const { _createSocketHandle } = require('internal/dgram'); |
| const { internalBinding } = require('internal/test/binding'); |
| const UDP = internalBinding('udp_wrap').UDP; |
| |
| { |
| // Create a handle that is not bound. |
| const handle = _createSocketHandle(null, null, 'udp4'); |
| |
| assert(handle instanceof UDP); |
| assert.strictEqual(typeof handle.fd, 'number'); |
| assert(handle.fd < 0); |
| } |
| |
| { |
| // Create a bound handle. |
| const handle = _createSocketHandle(common.localhostIPv4, 0, 'udp4'); |
| |
| assert(handle instanceof UDP); |
| assert.strictEqual(typeof handle.fd, 'number'); |
| |
| if (!common.isWindows) |
| assert(handle.fd > 0); |
| } |
| |
| { |
| // Return an error if binding fails. |
| const err = _createSocketHandle('localhost', 0, 'udp4'); |
| |
| assert.strictEqual(typeof err, 'number'); |
| assert(err < 0); |
| } |