package main import ( "os" "testing" ) func testWasmFile(t *testing.T, fname string) { fin, err := os.Open(fname) if err != nil { t.Fatal(err) } defer fin.Close() p, err := NewProcess(fin) if err != nil { t.Fatal(err) } ret, err := p.Main() if err != nil { t.Fatal(err) } if ret != 0 { t.Fatalf("expected return code to be 0, got: %d", ret) } } func TestHelloWorld(t *testing.T) { fin, err := os.Open("./testdata/hello.wasm") if err != nil { t.Fatal(err) } defer fin.Close() p, err := NewProcess(fin) if err != nil { t.Fatal(err) } ret, err := p.Main() if err != nil { t.Fatal(err) } if ret != 0 { t.Fatalf("expected return code to be 0, got: %d", ret) } data := p.readMem(200) // should be "Hello" if string(data) != "Hello" { t.Fatalf("wanted \"Hello\", got: %q", string(data)) } _, err = p.writeMem(200, []byte("goodbye")) if err != nil { t.Fatal(err) } data = p.readMem(200) if string(data) != "goodbye" { t.Fatalf("wanted \"goodbye\", got: %q", string(data)) } } func TestWriteFile(t *testing.T) { testWasmFile(t, "./testdata/writefile.wasm") }