(t *testing.T)
| 23 | } |
| 24 | |
| 25 | func TestModuleImports(t *testing.T) { |
| 26 | wasm, err := Wat2Wasm(` |
| 27 | (module |
| 28 | (import "" "f" (func)) |
| 29 | (import "a" "g" (global i32)) |
| 30 | (import "" "" (table 1 funcref)) |
| 31 | (import "" "" (memory 1)) |
| 32 | ) |
| 33 | `) |
| 34 | require.NoError(t, err) |
| 35 | module, err := NewModule(NewEngine(), wasm) |
| 36 | require.NoError(t, err) |
| 37 | defer module.Close() |
| 38 | imports := module.Imports() |
| 39 | require.Len(t, imports, 4) |
| 40 | require.Equal(t, "", imports[0].Module()) |
| 41 | require.Equal(t, "f", *imports[0].Name()) |
| 42 | require.NotNil(t, imports[0].Type().FuncType()) |
| 43 | require.Len(t, imports[0].Type().FuncType().Params(), 0) |
| 44 | require.Len(t, imports[0].Type().FuncType().Results(), 0) |
| 45 | |
| 46 | require.Equal(t, "a", imports[1].Module()) |
| 47 | require.Equal(t, "g", *imports[1].Name()) |
| 48 | require.NotNil(t, imports[1].Type().GlobalType()) |
| 49 | require.Equal(t, KindI32, imports[1].Type().GlobalType().Content().Kind()) |
| 50 | |
| 51 | require.Empty(t, imports[2].Module()) |
| 52 | require.Empty(t, *imports[2].Name()) |
| 53 | require.NotNil(t, imports[2].Type().TableType()) |
| 54 | require.Equal(t, KindFuncref, imports[2].Type().TableType().Element().Kind()) |
| 55 | |
| 56 | require.Empty(t, imports[3].Module()) |
| 57 | require.Empty(t, *imports[3].Name()) |
| 58 | require.NotNil(t, imports[3].Type().MemoryType()) |
| 59 | require.Equal(t, uint64(1), imports[3].Type().MemoryType().Minimum()) |
| 60 | } |
| 61 | |
| 62 | func TestModuleExports(t *testing.T) { |
| 63 | wasm, err := Wat2Wasm(` |
nothing calls this directly
no test coverage detected
searching dependent graphs…