summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ctypes/argument-length-struct.js
blob: 0e8efbb6ab4cf15358e1a2b81b0ecdd91b648e5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
load(libdir + 'asserts.js');

function test() {
  assertTypeErrorMessage(() => { ctypes.StructType(); },
                         "StructType takes one or two arguments");
  assertTypeErrorMessage(() => { ctypes.StructType("a").define(); },
                         "StructType.prototype.define takes one argument");
  assertTypeErrorMessage(() => { ctypes.StructType("a", [])(1, 2, 3); },
                         "StructType constructor takes at most one argument");
  assertTypeErrorMessage(() => { ctypes.StructType("a", [ {"x": ctypes.int32_t }, {"y": ctypes.int32_t }, {"z": ctypes.int32_t }])(1, 2); },
                         "StructType constructor takes 0, 1, or 3 arguments");
  assertTypeErrorMessage(() => { ctypes.StructType("a", [ {"x": ctypes.int32_t } ])().addressOfField(); },
                         "StructType.prototype.addressOfField takes one argument");
}

if (typeof ctypes === "object")
  test();