Files
wazero/experimental/fs_test.go
Teppei Fukuda 7794530d01 Allow passing fs.FS when calling functions (#571)
Fixes #563 

Signed-off-by: knqyf263 <knqyf263@gmail.com>
Co-authored-by: Adrian Cole <adrian@tetrate.io>
2022-05-20 10:51:17 +09:00

42 lines
1021 B
Go

package experimental_test
import (
"context"
_ "embed"
"log"
"testing"
"testing/fstest"
"github.com/tetratelabs/wazero/experimental"
"github.com/tetratelabs/wazero/internal/fs"
"github.com/tetratelabs/wazero/internal/testing/require"
)
// This is a very basic integration of fs config. The main goal is to show how it is configured.
func TestWithFS(t *testing.T) {
fileName := "animals.txt"
mapfs := fstest.MapFS{fileName: &fstest.MapFile{Data: []byte(`animals`)}}
// Set context to one that has experimental fs config
ctx, closer, err := experimental.WithFS(context.Background(), mapfs)
if err != nil {
log.Panicln(err)
}
defer closer.Close(ctx)
v := ctx.Value(fs.Key{})
require.NotNil(t, v)
fsCtx, ok := v.(*fs.Context)
require.True(t, ok)
entry, ok := fsCtx.OpenedFile(3)
require.True(t, ok)
require.Equal(t, "/", entry.Path)
require.Equal(t, mapfs, entry.FS)
entry, ok = fsCtx.OpenedFile(4)
require.True(t, ok)
require.Equal(t, ".", entry.Path)
require.Equal(t, mapfs, entry.FS)
}