...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package afero
16
17 import (
18 "fmt"
19 "os"
20 "testing"
21 )
22
23 func TestWalk(t *testing.T) {
24 defer removeAllTestFiles(t)
25 var testDir string
26 for i, fs := range Fss {
27 if i == 0 {
28 testDir = setupTestDirRoot(t, fs)
29 } else {
30 setupTestDirReusePath(t, fs, testDir)
31 }
32 }
33
34 outputs := make([]string, len(Fss))
35 for i, fs := range Fss {
36 walkFn := func(path string, info os.FileInfo, err error) error {
37 if err != nil {
38 t.Error("walkFn err:", err)
39 }
40 var size int64
41 if !info.IsDir() {
42 size = info.Size()
43 }
44 outputs[i] += fmt.Sprintln(path, info.Name(), size, info.IsDir(), err)
45 return nil
46 }
47 err := Walk(fs, testDir, walkFn)
48 if err != nil {
49 t.Error(err)
50 }
51 }
52 fail := false
53 for i, o := range outputs {
54 if i == 0 {
55 continue
56 }
57 if o != outputs[i-1] {
58 fail = true
59 break
60 }
61 }
62 if fail {
63 t.Log("Walk outputs not equal!")
64 for i, o := range outputs {
65 t.Log(Fss[i].Name() + "\n" + o)
66 }
67 t.Fail()
68 }
69 }
70
View as plain text