1
2
3
4
5 package fstest
6
7 import (
8 "fmt"
9 "io/fs"
10 "strings"
11 "testing"
12 )
13
14 func TestMapFS(t *testing.T) {
15 m := MapFS{
16 "hello": {Data: []byte("hello, world\n")},
17 "fortune/k/ken.txt": {Data: []byte("If a program is too slow, it must have a loop.\n")},
18 }
19 if err := TestFS(m, "hello", "fortune/k/ken.txt"); err != nil {
20 t.Fatal(err)
21 }
22 }
23
24 func TestMapFSChmodDot(t *testing.T) {
25 m := MapFS{
26 "a/b.txt": &MapFile{Mode: 0666},
27 ".": &MapFile{Mode: 0777 | fs.ModeDir},
28 }
29 buf := new(strings.Builder)
30 fs.WalkDir(m, ".", func(path string, d fs.DirEntry, err error) error {
31 fi, err := d.Info()
32 if err != nil {
33 return err
34 }
35 fmt.Fprintf(buf, "%s: %v\n", path, fi.Mode())
36 return nil
37 })
38 want := `
39 .: drwxrwxrwx
40 a: d---------
41 a/b.txt: -rw-rw-rw-
42 `[1:]
43 got := buf.String()
44 if want != got {
45 t.Errorf("MapFS modes want:\n%s\ngot:\n%s\n", want, got)
46 }
47 }
48
View as plain text