-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathTableTest.v3
32 lines (25 loc) · 894 Bytes
/
TableTest.v3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Copyright 2021 Ben L. Titzer. All rights reserved.
// See LICENSE for details of Apache 2.0 license.
def T = UnitTests.register;
def X_ = void(
T("table:sig1", test_sig1),
T("table:set_sig1", test_set_sig1)
);
def test_sig1(t: Tester) {
var decl = TableDecl.new(ValueTypes.FUNCREF, SizeConstraint(false, 1, Max.None));
var table = Table.new(decl.elemtype, decl);
t.assert_eq(1, table.funcs.length);
t.assert_eq(1, table.ids.length);
if (!t.ok) return;
t.assert_eq(null, table.funcs[0]);
t.assert_eq(-1, table.ids[0]);
}
def test_set_sig1(t: Tester) {
var decl = TableDecl.new(ValueTypes.FUNCREF, SizeConstraint(false, 1, Max.None));
var table = Table.new(decl.elemtype, decl);
var func = HostFunction.new("test_func", SigCache.i_i, null);
var id = Canon.sigId(func.sig);
table[0] = Value.Ref(func);
t.assert_eq(func, table.funcs[0]);
t.assert_eq(id, table.ids[0]);
}