Fixes #563 Signed-off-by: knqyf263 <knqyf263@gmail.com> Co-authored-by: Adrian Cole <adrian@tetrate.io>
42 lines
1021 B
Go
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)
|
|
}
|