...
1
16
17 package temp
18
19 import (
20 "io/ioutil"
21 "os"
22 "path/filepath"
23 "strings"
24 "testing"
25 )
26
27 func TestTempDir(t *testing.T) {
28 dir, err := CreateTempDir("prefix")
29 if err != nil {
30 t.Fatal(err)
31 }
32
33
34 defer dir.Delete()
35
36
37 _, err = os.Stat(dir.Name)
38 if err != nil {
39 t.Fatal(err)
40 }
41 if !strings.HasPrefix(filepath.Base(dir.Name), "prefix") {
42 t.Fatalf(`Directory doesn't start with "prefix": %q`,
43 dir.Name)
44 }
45
46
47 entries, err := ioutil.ReadDir(dir.Name)
48 if err != nil {
49 t.Fatal(err)
50 }
51 if len(entries) != 0 {
52 t.Fatalf("Directory should be empty, has %d elements",
53 len(entries))
54 }
55
56
57 _, err = dir.NewFile("ONE")
58 if err != nil {
59 t.Fatal(err)
60 }
61 _, err = dir.NewFile("TWO")
62 if err != nil {
63 t.Fatal(err)
64 }
65
66 _, err = dir.NewFile("TWO")
67 if err == nil {
68 t.Fatal("NewFile should fail to create the same file twice")
69 }
70
71
72 entries, err = ioutil.ReadDir(dir.Name)
73 if err != nil {
74 t.Fatal(err)
75 }
76 if len(entries) != 2 {
77 t.Fatalf("ReadDir should have two elements, has %d elements",
78 len(entries))
79 }
80
81
82 err = dir.Delete()
83 if err != nil {
84 t.Fatal(err)
85 }
86 _, err = os.Stat(dir.Name)
87 if err == nil {
88 t.Fatal("Directory should be gone, still present.")
89 }
90 }
91
View as plain text