wasmerio / wasmer-go

🐹🕸️ WebAssembly runtime for Go

Home Page:https://pkg.go.dev/github.com/wasmerio/wasmer-go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rename error message error?

orangeC23 opened this issue · comments

commented

Summary

The wasm file is :
tmp-wasm.txt

The go file is :

package main

import (
	"fmt"
	wasmer "github.com/wasmerio/wasmer-go/wasmer"
	"io/ioutil"
)

func main() {

	// os.Chdir(filepath.Dir(os.Args[0]))

    wasmBytes, _ := ioutil.ReadFile("./tmp.wasm")

    store := wasmer.NewStore(wasmer.NewEngine())

	module, _ := wasmer.NewModule(store, wasmBytes)

    wasiEnv, _ := wasmer.NewWasiStateBuilder("test").
		Argument("--dir=.").
		// Environment("ABC", "DEF").
		//MapDirectory("./dir", "./dir").
		Finalize()
	if store == nil {
		fmt.Println("store is null")
	}
	if module == nil {
		fmt.Println("module is null")
	}
	importObject, err := wasiEnv.GenerateImportObject(store, module)
	check(err)

	instance, err := wasmer.NewInstance(module, importObject)
	check(err)

	start, err := instance.Exports.GetWasiStartFunction()
	check(err)
	start()

}

func check(e error) {
	if e != nil {
		panic(e)
	}
}

Additional details

The wasm file is to test whether renaming a nonexistent file could print correct error message.

Expected behavior

Print:

ENOENT: 44
EINVAL: 28
r: -1
errno: 44
rename() error: No such file or directory

Using wasmer with the command wasmer run --dir=. tmp.wasm it print the showed message.

Actual behavior

Print:

ENOENT: 44
EINVAL: 28
r: -1
errno: 76
rename() error: Capabilities insufficient

Am I using the wasmer-go api with mistake?