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

Function TestTrapFrames

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

Source from the content-addressed store, hash-verified

12}
13
14func TestTrapFrames(t *testing.T) {
15 store := NewStore(NewEngine())
16 wasm, err := Wat2Wasm(`
17 (func call $foo)
18 (func $foo call $bar)
19 (func $bar unreachable)
20 (start 0)
21 `)
22 require.NoError(t, err)
23 module, err := NewModule(store.Engine, wasm)
24 require.NoError(t, err)
25
26 inst, err := NewInstance(store, module, []AsExtern{})
27 require.Nil(t, inst, "expected failure")
28 require.Error(t, err)
29
30 trap := err.(*Trap)
31 frames := trap.Frames()
32 require.Len(t, frames, 3, "expected 3 frames")
33
34 require.Equal(t, "bar", *frames[0].FuncName(), "bad function name")
35 require.Equal(t, "foo", *frames[1].FuncName(), "bad function name")
36 require.Nil(t, frames[2].FuncName(), "bad function name")
37 require.Equal(t, uint32(2), frames[0].FuncIndex(), "bad function index")
38 require.Equal(t, uint32(1), frames[1].FuncIndex(), "bad function index")
39 require.Equal(t, uint32(0), frames[2].FuncIndex(), "bad function index")
40
41 expected := `error while executing at wasm backtrace:
42 0: 0x26 - <unknown>!bar
43 1: 0x21 - <unknown>!foo
44 2: 0x1c - <unknown>!<wasm function 0>
45
46Caused by:
47 wasm trap: wasm ` + "`unreachable` instruction executed\n"
48
49 require.Equal(t, expected, trap.Error())
50 code := trap.Code()
51 require.NotNil(t, code)
52 require.Equal(t, *code, UnreachableCodeReached)
53}
54
55func TestTrapModuleName(t *testing.T) {
56 store := NewStore(NewEngine())

Callers

nothing calls this directly

Calls 10

NewStoreFunction · 0.85
NewEngineFunction · 0.85
Wat2WasmFunction · 0.85
NewModuleFunction · 0.85
NewInstanceFunction · 0.85
FramesMethod · 0.80
FuncNameMethod · 0.80
FuncIndexMethod · 0.80
CodeMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…