errno.js 627 字节

var assert = require('assert')
  , ref = require('ref')
  , ffi = require('../')
  , errno = ffi.errno

describe('errno()', function () {

  afterEach(gc)

  it('should be a function', function () {
    assert.equal('function', typeof errno)
  })

  it('should set the errno with out-of-range "strtoul" value', function () {
    var lib = process.platform == 'win32' ? 'msvcrt' : 'libc'
    var strtoul = new ffi.Library(lib, {
      'strtoul': [ 'ulong', [ 'string', 'string', 'int' ] ]
    }).strtoul
    strtoul('1234567890123456789012345678901234567890', null, 0)
    assert.equal(34, errno()) // errno == ERANGE
  })

})