Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package files
import (
"bytes"
"fmt"
"os"
"path"
"testing"
)
var tempFolder = os.Getenv("TEMP")
var fileData = []byte("aaaaaaaaaaaaaaaaa")
func TestWrite(t *testing.T) {
fileName := "testfile"
err := write(fileName)
if err != nil {
t.Fatal(err)
}
remove(fileName)
if !checkGone(fileName){
t.Error(fmt.Errorf("File not removed: " + fileName))
}
}
func TestRead(t *testing.T) {
fileName := "testfile"
err := write(fileName)
if err != nil {
t.Fatal(err)
}
err2 := readAndCheck(fileName, fileData)
if err2 != nil {
remove(fileName)
t.Fatal(err)
}
remove(fileName)
if !checkGone(fileName){
t.Error(fmt.Errorf("File not removed: " + fileName))
}
}
func TestRename(t *testing.T) {
fileName0 := "file0"
fileName1 := "file1"
err := write(fileName0)
if err != nil {
t.Fatal(err)
}
err2 := rename(fileName0,fileName1)
if err2 != nil {
t.Fatal(err2)
}
err3 := readAndCheck(fileName1, fileData)
if err3 != nil {
remove(fileName1)
t.Fatal(err)
}
remove(fileName1)
if !checkGone(fileName0){
t.Error(fmt.Errorf("File not removed: " + fileName0))
}
if !checkGone(fileName1){
t.Error(fmt.Errorf("File not removed: " + fileName1))
}
}
func getName(name string) string {
return path.Join(tempFolder, name)
}
func write(fileName string) error {
return WriteFile(getName(fileName), fileData, FILE_RW)
}
func readAndCheck(fileName string, btsIn []byte) error {
bts, err := ReadFile(getName(fileName))
if err != nil {
return err
}
if !bytes.Equal(bts,btsIn) {
return fmt.Errorf("Failed to read file data. Written: %s, Read: %s\n", string(fileData), string(bts))
}
return nil
}
func remove(fileName string) error {
return os.Remove(getName(fileName))
}
func rename(fileName0, fileName1 string) error {
return Rename(getName(fileName0), getName(fileName1))
}
func checkGone(fileName string) bool {
name := getName(fileName)
_ , err := os.Stat(name)
return os.IsNotExist(err)
}