Merge pull request #36 from moorereason/iss35
Fix closing and deleting of files in tests
diff --git a/afero_test.go b/afero_test.go
index acca837..df05fb7 100644
--- a/afero_test.go
+++ b/afero_test.go
@@ -78,10 +78,10 @@
}
func TestOpenFile(t *testing.T) {
+ defer removeAllTestFiles(t)
for _, fs := range Fss {
tmp := testDir(fs)
path := filepath.Join(tmp, testName)
- defer removeAllTestFiles()
f, err := fs.OpenFile(path, os.O_RDWR|os.O_CREATE, 0600)
if err != nil {
@@ -143,6 +143,7 @@
}
func TestRename(t *testing.T) {
+ defer removeAllTestFiles(t)
for _, fs := range Fss {
tDir := testDir(fs)
from := filepath.Join(tDir, "/renamefrom")
@@ -175,7 +176,6 @@
t.Error("File was not renamed to renameto")
}
- defer removeAllTestFiles()
_, err = fs.Stat(to)
if err != nil {
t.Errorf("stat %q failed: %v", to, err)
@@ -233,12 +233,11 @@
}
func TestTruncate(t *testing.T) {
+ defer removeAllTestFiles(t)
for _, fs := range Fss {
// f := newFile("TestTruncate", fs, t)
f := tmpFile(fs)
-
defer f.Close()
- defer removeAllTestFiles()
checkSize(t, f, 0)
f.Write([]byte("hello, world\n"))
@@ -257,10 +256,10 @@
}
func TestSeek(t *testing.T) {
+ defer removeAllTestFiles(t)
for _, fs := range Fss {
f := tmpFile(fs)
defer f.Close()
- defer removeAllTestFiles()
const data = "hello, world\n"
io.WriteString(f, data)
@@ -295,10 +294,10 @@
}
func TestReadAt(t *testing.T) {
+ defer removeAllTestFiles(t)
for _, fs := range Fss {
f := tmpFile(fs)
defer f.Close()
- defer removeAllTestFiles()
const data = "hello, world\n"
io.WriteString(f, data)
@@ -315,11 +314,11 @@
}
func TestWriteAt(t *testing.T) {
+ defer removeAllTestFiles(t)
for _, fs := range Fss {
// f := newFile("TestWriteAt", fs, t)
f := tmpFile(fs)
defer f.Close()
- defer removeAllTestFiles()
const data = "hello, world\n"
io.WriteString(f, data)
@@ -398,14 +397,17 @@
}
func TestReaddirnames(t *testing.T) {
- defer removeAllTestFiles()
+ defer removeAllTestFiles(t)
for _, fs := range Fss {
testSubDir := setupTestDir(t, fs)
tDir := filepath.Dir(testSubDir)
+
root, err := fs.Open(tDir)
if err != nil {
t.Fatal(err)
}
+ defer root.Close()
+
namesRoot, err := root.Readdirnames(-1)
if err != nil {
t.Fatal(err)
@@ -415,28 +417,35 @@
if err != nil {
t.Fatal(err)
}
+ defer sub.Close()
+
namesSub, err := sub.Readdirnames(-1)
if err != nil {
t.Fatal(err)
}
+
findNames(fs, t, tDir, testSubDir, namesRoot, namesSub)
}
}
func TestReaddirSimple(t *testing.T) {
- defer removeAllTestFiles()
+ defer removeAllTestFiles(t)
for _, fs := range Fss {
testSubDir := setupTestDir(t, fs)
tDir := filepath.Dir(testSubDir)
+
root, err := fs.Open(tDir)
if err != nil {
t.Fatal(err)
}
+ defer root.Close()
+
rootInfo, err := root.Readdir(1)
if err != nil {
t.Log(myFileInfo(rootInfo))
t.Error(err)
}
+
rootInfo, err = root.Readdir(5)
if err != io.EOF {
t.Log(myFileInfo(rootInfo))
@@ -447,6 +456,8 @@
if err != nil {
t.Fatal(err)
}
+ defer sub.Close()
+
subInfo, err := sub.Readdir(5)
if err != nil {
t.Log(myFileInfo(subInfo))
@@ -456,7 +467,7 @@
}
func TestReaddir(t *testing.T) {
- defer removeAllTestFiles()
+ defer removeAllTestFiles(t)
for num := 0; num < 6; num++ {
outputs := make([]string, len(Fss))
infos := make([]string, len(Fss))
@@ -467,6 +478,8 @@
if err != nil {
t.Fatal(err)
}
+ defer root.Close()
+
for j := 0; j < 6; j++ {
info, err := root.Readdir(num)
outputs[i] += fmt.Sprintf("%v Error: %v\n", myFileInfo(info), err)
@@ -506,14 +519,17 @@
}
func TestReaddirAll(t *testing.T) {
- defer removeAllTestFiles()
+ defer removeAllTestFiles(t)
for _, fs := range Fss {
testSubDir := setupTestDir(t, fs)
tDir := filepath.Dir(testSubDir)
+
root, err := fs.Open(tDir)
if err != nil {
t.Fatal(err)
}
+ defer root.Close()
+
rootInfo, err := root.Readdir(-1)
if err != nil {
t.Fatal(err)
@@ -527,6 +543,8 @@
if err != nil {
t.Fatal(err)
}
+ defer sub.Close()
+
subInfo, err := sub.Readdir(-1)
if err != nil {
t.Fatal(err)
@@ -543,10 +561,12 @@
func findNames(fs Fs, t *testing.T, tDir, testSubDir string, root, sub []string) {
var foundRoot bool
for _, e := range root {
- _, err := fs.Open(filepath.Join(tDir, e))
+ f, err := fs.Open(filepath.Join(tDir, e))
if err != nil {
t.Error("Open", filepath.Join(tDir, e), ":", err)
}
+ defer f.Close()
+
if equal(e, "we") {
foundRoot = true
}
@@ -559,10 +579,12 @@
var found1, found2 bool
for _, e := range sub {
- _, err := fs.Open(filepath.Join(testSubDir, e))
+ f, err := fs.Open(filepath.Join(testSubDir, e))
if err != nil {
t.Error("Open", filepath.Join(testSubDir, e), ":", err)
}
+ defer f.Close()
+
if equal(e, "testfile1") {
found1 = true
}
@@ -583,10 +605,12 @@
}
}
-func removeAllTestFiles() {
+func removeAllTestFiles(t *testing.T) {
for fs, list := range testRegistry {
for _, path := range list {
- fs.RemoveAll(path)
+ if err := fs.RemoveAll(path); err != nil {
+ t.Error(fs.Name(), err)
+ }
}
}
testRegistry = make(map[Fs][]string)
diff --git a/path_test.go b/path_test.go
index b3c0417..104a6bc 100644
--- a/path_test.go
+++ b/path_test.go
@@ -21,7 +21,7 @@
)
func TestWalk(t *testing.T) {
- defer removeAllTestFiles()
+ defer removeAllTestFiles(t)
var testDir string
for i, fs := range Fss {
if i == 0 {