MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime-go / TestTable

Function TestTable

table_test.go:9–53  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

7)
8
9func TestTable(t *testing.T) {
10 store := NewStore(NewEngine())
11 ty := NewTableType(NewValType(KindFuncref), 1, true, 3)
12 table, err := NewTable(store, ty, ValFuncref(nil))
13 require.NoError(t, err)
14 require.Equal(t, uint64(1), table.Size(store))
15
16 f, err := table.Get(store, 0)
17 require.NoError(t, err)
18 require.Nil(t, f.Funcref())
19
20 _, err = table.Get(store, 1)
21 require.Error(t, err)
22
23 err = table.Set(store, 0, ValFuncref(nil))
24 require.NoError(t, err)
25 err = table.Set(store, 1, ValFuncref(nil))
26 require.Error(t, err)
27 err = table.Set(store, 0, ValFuncref(WrapFunc(store, func() {})))
28 require.NoError(t, err)
29 f, err = table.Get(store, 0)
30 require.NoError(t, err)
31 require.NotNil(t, f.Funcref())
32
33 prevSize, err := table.Grow(store, 1, ValFuncref(nil))
34 require.NoError(t, err)
35 require.Equal(t, uint64(1), prevSize)
36
37 f, err = table.Get(store, 1)
38 require.NoError(t, err)
39 require.Nil(t, f.Funcref())
40
41 called := false
42 _, err = table.Grow(store, 1, ValFuncref(WrapFunc(store, func() {
43 called = true
44 })))
45 require.NoError(t, err)
46 f, err = table.Get(store, 2)
47 require.NoError(t, err)
48 require.False(t, called)
49
50 _, err = f.Funcref().Call(store)
51 require.NoError(t, err)
52 require.True(t, called)
53}

Callers

nothing calls this directly

Calls 14

SizeMethod · 0.95
GetMethod · 0.95
SetMethod · 0.95
GrowMethod · 0.95
NewStoreFunction · 0.85
NewEngineFunction · 0.85
NewTableTypeFunction · 0.85
NewValTypeFunction · 0.85
NewTableFunction · 0.85
ValFuncrefFunction · 0.85
WrapFuncFunction · 0.85
FuncrefMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…