Adds ExportedFunctionDefinitions and ExportedMemoryDefinitions (#986)

This adds ExportedFunctionDefinitions and ExportedMemoryDefinitions to
api.Module so that those who can't access CompileModule can see them.

Fixes #839

Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
Crypt Keeper
2022-12-31 13:11:37 +08:00
committed by GitHub
parent e7018d19ff
commit da3aa7a5ad
7 changed files with 85 additions and 24 deletions

View File

@@ -225,8 +225,13 @@ func TestModule_Memory(t *testing.T) {
mem := module.ExportedMemory("memory")
if tc.expected {
require.Equal(t, tc.expectedLen, mem.Size())
defs := module.ExportedMemoryDefinitions()
require.Equal(t, 1, len(defs))
def := defs["memory"]
require.Equal(t, tc.expectedLen>>16, def.Min())
} else {
require.Nil(t, mem)
require.Zero(t, len(module.ExportedMemoryDefinitions()))
}
})
}
@@ -525,7 +530,11 @@ func TestRuntime_CloseWithExitCode(t *testing.T) {
require.NoError(t, err)
func1 := m1.ExportedFunction("func")
require.Equal(t, map[string]api.FunctionDefinition{"func": func1.Definition()},
m1.ExportedFunctionDefinitions())
func2 := m2.ExportedFunction("func")
require.Equal(t, map[string]api.FunctionDefinition{"func": func2.Definition()},
m2.ExportedFunctionDefinitions())
// Modules not closed so calls succeed