mirror of
https://github.com/minio/minio.git
synced 2025-02-03 09:55:59 -05:00
posix: test isDirEmpty, change error conditional (#4743)
This commit adds a new test for isDirEmpty (for code coverage) and changes around the error conditional. Previously, there was a `return nil` statement that would only be triggered under a race condition and would trip up our test coverage for no real reason. With this new error conditional, there's no awkward 'else'-esque condition, which means test coverage will not change between runs for no reason in this specific test. It's also a cleaner read.
This commit is contained in:
parent
fcc61fa46a
commit
28bc5899fd
12
cmd/posix.go
12
cmd/posix.go
@ -74,24 +74,20 @@ func checkPathLength(pathName string) error {
|
||||
func isDirEmpty(dirname string) bool {
|
||||
f, err := os.Open(preparePath(dirname))
|
||||
if err != nil {
|
||||
errorIf(func() error {
|
||||
if !os.IsNotExist(err) {
|
||||
return err
|
||||
errorIf(err, "Unable to access directory")
|
||||
}
|
||||
return nil
|
||||
}(), "Unable to access directory.")
|
||||
|
||||
return false
|
||||
}
|
||||
defer f.Close()
|
||||
// List one entry.
|
||||
_, err = f.Readdirnames(1)
|
||||
if err != io.EOF {
|
||||
errorIf(func() error {
|
||||
if !os.IsNotExist(err) {
|
||||
return err
|
||||
errorIf(err, "Unable to list directory")
|
||||
}
|
||||
return nil
|
||||
}(), "Unable to list directory.")
|
||||
|
||||
return false
|
||||
}
|
||||
// Returns true if we have reached EOF, directory is indeed empty.
|
||||
|
@ -73,6 +73,42 @@ func TestPosixGetDiskInfo(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestPosixIsDirEmpty(t *testing.T) {
|
||||
tmp, err := ioutil.TempDir(globalTestTmpDir, "minio-")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer removeAll(tmp)
|
||||
|
||||
// Should give false on non-existent directory.
|
||||
dir1 := slashpath.Join(tmp, "non-existent-directory")
|
||||
if isDirEmpty(dir1) != false {
|
||||
t.Error("expected false for non-existent directory, got true")
|
||||
}
|
||||
|
||||
// Should give false for not-a-directory.
|
||||
dir2 := slashpath.Join(tmp, "file")
|
||||
err = ioutil.WriteFile(dir2, []byte("hello"), 0777)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if isDirEmpty(dir2) != false {
|
||||
t.Error("expected false for a file, got true")
|
||||
}
|
||||
|
||||
// Should give true for a real empty directory.
|
||||
dir3 := slashpath.Join(tmp, "empty")
|
||||
err = os.Mkdir(dir3, 0777)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if isDirEmpty(dir3) != true {
|
||||
t.Error("expected true for empty dir, got false")
|
||||
}
|
||||
}
|
||||
|
||||
// TestPosixReadAll - TestPosixs the functionality implemented by posix ReadAll storage API.
|
||||
func TestPosixReadAll(t *testing.T) {
|
||||
// create posix test setup
|
||||
|
Loading…
x
Reference in New Issue
Block a user