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

Function TestInstance

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

Source from the content-addressed store, hash-verified

7)
8
9func TestInstance(t *testing.T) {
10 wasm, err := Wat2Wasm(`
11 (module
12 (func (export "f"))
13 (global (export "g") i32 (i32.const 0))
14 (table (export "t") 1 funcref)
15 (memory (export "m") 1)
16 )
17 `)
18 require.NoError(t, err)
19 store := NewStore(NewEngine())
20 module, err := NewModule(store.Engine, wasm)
21 require.NoError(t, err)
22 instance, err := NewInstance(store, module, []AsExtern{})
23 require.NoError(t, err)
24 exports := instance.Exports(store)
25 require.Len(t, exports, 4)
26 require.NotNil(t, exports[0].Func())
27 require.Nil(t, exports[0].Global())
28 require.Nil(t, exports[0].Memory())
29 require.Nil(t, exports[0].Table())
30
31 require.Nil(t, exports[1].Func())
32 require.NotNil(t, exports[1].Global())
33 require.Nil(t, exports[1].Memory())
34 require.Nil(t, exports[1].Table())
35
36 require.NotNil(t, exports[2].Table())
37 require.NotNil(t, exports[3].Memory())
38
39 f := exports[0].Func()
40 g := exports[1].Global()
41 table := exports[2].Table()
42 m := exports[3].Memory()
43 require.Len(t, f.Type(store).Params(), 0)
44 require.Len(t, exports[0].Type(store).FuncType().Params(), 0)
45 require.Equal(t, KindI32, g.Type(store).Content().Kind())
46 require.Equal(t, KindI32, exports[1].Type(store).GlobalType().Content().Kind())
47 require.Equal(t, KindFuncref, table.Type(store).Element().Kind())
48 require.Equal(t, KindFuncref, exports[2].Type(store).TableType().Element().Kind())
49 require.Equal(t, uint64(1), m.Type(store).Minimum())
50 require.Equal(t, uint64(1), exports[3].Type(store).MemoryType().Minimum())
51}
52
53func TestInstanceBad(t *testing.T) {
54 store := NewStore(NewEngine())

Callers

nothing calls this directly

Calls 15

ExportsMethod · 0.95
Wat2WasmFunction · 0.85
NewStoreFunction · 0.85
NewEngineFunction · 0.85
NewModuleFunction · 0.85
NewInstanceFunction · 0.85
FuncMethod · 0.80
GlobalMethod · 0.80
MemoryMethod · 0.80
TableMethod · 0.80
ParamsMethod · 0.80
FuncTypeMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…