Rust-Programming-Cookbook/Chapter08/node-to-rust/node_modules/ffi/test/cif.js

45 wiersze
1.2 KiB
JavaScript
Czysty Zwykły widok Historia

2017-07-31 06:59:18 +00:00
var assert = require('assert')
, ref = require('ref')
, ffi = require('../')
describe('ffi_cif', function () {
afterEach(gc)
it('should return a Buffer representing the `ffi_cif` instance', function () {
var cif = ffi.CIF(ref.types.void, [ ])
assert(Buffer.isBuffer(cif))
})
it('should throw an Error when given an invalid "type"', function () {
var ffi_type = new ffi.FFI_TYPE
ffi_type.size = 0
ffi_type.alignment = 0
ffi_type.type = 0
ffi_type.elements = ref.NULL
var bad_type = { size: 1, indirection: 1, ffi_type: ffi_type.ref() }
assert.throws(function () {
ffi.CIF(bad_type, [])
}, function (err) {
assert(err.message.indexOf('FFI_BAD_TYPEDEF') !== -1)
assert.equal('FFI_BAD_TYPEDEF', err.code)
assert.equal(ffi.FFI_BAD_TYPEDEF, err.errno)
return true
})
})
it('should throw an Error when given an invalid ABI argument', function () {
assert.throws(function () {
ffi.CIF(ref.types.void, [], -1)
}, function (err) {
assert(err.message.indexOf('FFI_BAD_ABI') !== -1)
assert.equal('FFI_BAD_ABI', err.code)
assert.equal(ffi.FFI_BAD_ABI, err.errno)
return true
})
})
})