wasmer-go icon indicating copy to clipboard operation
wasmer-go copied to clipboard

Rename error message error?

Open orangeC23 opened this issue 1 year ago • 0 comments

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?

orangeC23 avatar Apr 12 '23 04:04 orangeC23