Browse Source

Merge pull request #3973 from xiang90/purge_test

pkg/fileutil: make purge test more reliable
Xiang Li 10 years ago
parent
commit
b3d9196021
1 changed files with 21 additions and 9 deletions
  1. 21 9
      pkg/fileutil/purge_test.go

+ 21 - 9
pkg/fileutil/purge_test.go

@@ -103,16 +103,23 @@ func TestPurgeFileHoldingLock(t *testing.T) {
 
 	stop := make(chan struct{})
 	errch := PurgeFile(dir, "test", 3, time.Millisecond, stop)
-	time.Sleep(20 * time.Millisecond)
 
-	fnames, err := ReadDir(dir)
-	if err != nil {
-		t.Fatal(err)
+	var fnames []string
+	for i := 0; i < 10; i++ {
+		fnames, err = ReadDir(dir)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if len(fnames) <= 5 {
+			break
+		}
+		time.Sleep(10 * time.Millisecond)
 	}
 	wnames := []string{"5.test", "6.test", "7.test", "8.test", "9.test"}
 	if !reflect.DeepEqual(fnames, wnames) {
 		t.Errorf("filenames = %v, want %v", fnames, wnames)
 	}
+
 	select {
 	case err := <-errch:
 		t.Errorf("unexpected purge error %v", err)
@@ -129,16 +136,21 @@ func TestPurgeFileHoldingLock(t *testing.T) {
 		t.Fatal(err)
 	}
 
-	time.Sleep(20 * time.Millisecond)
-
-	fnames, err = ReadDir(dir)
-	if err != nil {
-		t.Fatal(err)
+	for i := 0; i < 10; i++ {
+		fnames, err = ReadDir(dir)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if len(fnames) <= 3 {
+			break
+		}
+		time.Sleep(10 * time.Millisecond)
 	}
 	wnames = []string{"7.test", "8.test", "9.test"}
 	if !reflect.DeepEqual(fnames, wnames) {
 		t.Errorf("filenames = %v, want %v", fnames, wnames)
 	}
+
 	select {
 	case err := <-errch:
 		t.Errorf("unexpected purge error %v", err)