Source file
src/io/fs/readfile_test.go
1
2
3
4
5 package fs_test
6
7 import (
8 . "io/fs"
9 "testing"
10 "testing/fstest"
11 "time"
12 )
13
14 var testFsys = fstest.MapFS{
15 "hello.txt": {
16 Data: []byte("hello, world"),
17 Mode: 0456,
18 ModTime: time.Now(),
19 Sys: &sysValue,
20 },
21 "sub/goodbye.txt": {
22 Data: []byte("goodbye, world"),
23 Mode: 0456,
24 ModTime: time.Now(),
25 Sys: &sysValue,
26 },
27 }
28
29 var sysValue int
30
31 type readFileOnly struct{ ReadFileFS }
32
33 func (readFileOnly) Open(name string) (File, error) { return nil, ErrNotExist }
34
35 type openOnly struct{ FS }
36
37 func TestReadFile(t *testing.T) {
38
39 data, err := ReadFile(readFileOnly{testFsys}, "hello.txt")
40 if string(data) != "hello, world" || err != nil {
41 t.Fatalf(`ReadFile(readFileOnly, "hello.txt") = %q, %v, want %q, nil`, data, err, "hello, world")
42 }
43
44
45 data, err = ReadFile(openOnly{testFsys}, "hello.txt")
46 if string(data) != "hello, world" || err != nil {
47 t.Fatalf(`ReadFile(openOnly, "hello.txt") = %q, %v, want %q, nil`, data, err, "hello, world")
48 }
49
50
51 sub, err := Sub(testFsys, ".")
52 if err != nil {
53 t.Fatal(err)
54 }
55 data, err = ReadFile(sub, "hello.txt")
56 if string(data) != "hello, world" || err != nil {
57 t.Fatalf(`ReadFile(sub(.), "hello.txt") = %q, %v, want %q, nil`, data, err, "hello, world")
58 }
59 }
60
View as plain text