| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package fileutil
- import (
- "fmt"
- "io/ioutil"
- "os"
- "path"
- "reflect"
- "testing"
- "time"
- )
- func TestPurgeFile(t *testing.T) {
- dir, err := ioutil.TempDir("", "purgefile")
- if err != nil {
- t.Fatal(err)
- }
- defer os.RemoveAll(dir)
- for i := 0; i < 5; i++ {
- _, err := os.Create(path.Join(dir, fmt.Sprintf("%d.test", i)))
- if err != nil {
- t.Fatal(err)
- }
- }
- stop := make(chan struct{})
- errch := PurgeFile(dir, "test", 3, time.Millisecond, stop)
- for i := 5; i < 10; i++ {
- _, err := os.Create(path.Join(dir, fmt.Sprintf("%d.test", i)))
- if err != nil {
- t.Fatal(err)
- }
- time.Sleep(time.Millisecond)
- }
- fnames, err := ReadDir(dir)
- if err != nil {
- t.Fatal(err)
- }
- 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)
- case <-time.After(time.Millisecond):
- }
- close(stop)
- }
|