forked from mirror/afero
Merge pull request #340 from typerat/fix-gcsfs-removeall-notfound
Fix gcsfs RemoveAll
This commit is contained in:
commit
931302a103
|
@ -109,7 +109,7 @@ func (o *GcsFile) Seek(newOffset int64, whence int) (int64, error) {
|
|||
if (whence == 0 && newOffset == o.fhOffset) || (whence == 1 && newOffset == 0) {
|
||||
return o.fhOffset, nil
|
||||
}
|
||||
log.Printf("WARNING: Seek beavhior triggered, highly inefficent. Offset before seek is at %d\n", o.fhOffset)
|
||||
log.Printf("WARNING: Seek behavior triggered, highly inefficent. Offset before seek is at %d\n", o.fhOffset)
|
||||
|
||||
//Fore the reader/writers to be reopened (at correct offset)
|
||||
err := o.Sync()
|
||||
|
|
|
@ -325,9 +325,14 @@ func (fs *Fs) RemoveAll(path string) error {
|
|||
}
|
||||
|
||||
pathInfo, err := fs.Stat(path)
|
||||
if errors.Is(err, ErrFileNotFound) {
|
||||
// return early if file doesn't exist
|
||||
return nil
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !pathInfo.IsDir() {
|
||||
return fs.Remove(path)
|
||||
}
|
||||
|
|
|
@ -804,3 +804,35 @@ func TestGcsMkdirAll(t *testing.T) {
|
|||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestGcsRemoveAll(t *testing.T) {
|
||||
t.Run("non-existent", func(t *testing.T) {
|
||||
err := gcsAfs.RemoveAll(filepath.Join(bucketName, "a"))
|
||||
if err != nil {
|
||||
t.Fatal("error should be nil when removing non-existent file")
|
||||
}
|
||||
})
|
||||
t.Run("success", func(t *testing.T) {
|
||||
aDir := filepath.Join(bucketName, "a")
|
||||
bDir := filepath.Join(aDir, "b")
|
||||
|
||||
err := gcsAfs.MkdirAll(bDir, 0755)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, err = gcsAfs.Stat(bDir)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = gcsAfs.RemoveAll(aDir)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to remove the folder %s with error: %s", aDir, err)
|
||||
}
|
||||
|
||||
_, err = gcsAfs.Stat(aDir)
|
||||
if err == nil {
|
||||
t.Fatalf("folder %s wasn't removed", aDir)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue