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

Function TestLinker

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

Source from the content-addressed store, hash-verified

7)
8
9func TestLinker(t *testing.T) {
10 wasm, err := Wat2Wasm(`
11 (module
12 (import "" "f" (func))
13 (import "" "g" (global i32))
14 (import "" "t" (table 1 funcref))
15 (import "" "m" (memory 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 linker := NewLinker(store.Engine)
23 defer linker.Close()
24 require.NoError(t, linker.Define(store, "", "f", WrapFunc(store, func() {})))
25 g, err := NewGlobal(store, NewGlobalType(NewValType(KindI32), false), ValI32(0))
26 require.NoError(t, err)
27 require.NoError(t, linker.Define(store, "", "g", g))
28 mt, err := NewMemoryType(1, true, 300, false)
29 require.NoError(t, err)
30 m, err := NewMemory(store, mt)
31 require.NoError(t, err)
32 require.NoError(t, linker.Define(store, "", "m", m))
33 require.NoError(t, linker.Define(store, "other", "m", m))
34
35 tableWasm, err := Wat2Wasm(`(module (table (export "") 1 funcref))`)
36 require.NoError(t, err)
37 tableModule, err := NewModule(store.Engine, tableWasm)
38 require.NoError(t, err)
39 instance, err := NewInstance(store, tableModule, []AsExtern{})
40 require.NoError(t, err)
41 table := instance.Exports(store)[0].Table()
42 require.NoError(t, linker.Define(store, "", "t", table))
43
44 _, err = linker.Instantiate(store, module)
45 require.NoError(t, err)
46
47 require.NoError(t, linker.DefineFunc(store, "", "", func() {}))
48 require.NoError(t, linker.DefineInstance(store, "x", instance))
49 err = linker.DefineInstance(store, "x", instance)
50 require.Error(t, err)
51}
52
53func TestLinkerShadowing(t *testing.T) {
54 store := NewStore(NewEngine())

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
DefineMethod · 0.95
ExportsMethod · 0.95
InstantiateMethod · 0.95
DefineFuncMethod · 0.95
DefineInstanceMethod · 0.95
Wat2WasmFunction · 0.85
NewStoreFunction · 0.85
NewEngineFunction · 0.85
NewModuleFunction · 0.85
NewLinkerFunction · 0.85
WrapFuncFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…