'use strict';
const common = require('../common');
const assert = require('assert');
const dgram = require('dgram');
const socket = dgram.createSocket('udp4');

socket.bind(0);
socket.on('listening', common.mustCall(() => {
  const result = socket.setTTL(16);
  assert.strictEqual(result, 16);

  assert.throws(() => {
    socket.setTTL('foo');
  }, {
    code: 'ERR_INVALID_ARG_TYPE',
    name: 'TypeError',
    message: /^The "ttl" argument must be of type number. Received type string \(["']foo["']\)$/,
  });

  // TTL must be a number from > 0 to < 256
  assert.throws(() => {
    socket.setTTL(1000);
  }, /^Error: .*EINVAL.*/);

  socket.close();
}));
