parent
dfa49f5592
commit
2642d571aa
|
@ -0,0 +1,5 @@
|
||||||
|
// +build go1.8
|
||||||
|
|
||||||
|
package memfs_test
|
||||||
|
|
||||||
|
const atLeastGo18 = true
|
|
@ -0,0 +1,5 @@
|
||||||
|
// +build !go1.8
|
||||||
|
|
||||||
|
package memfs_test
|
||||||
|
|
||||||
|
const atLeastGo18 = false
|
|
@ -1567,30 +1567,21 @@ func (t *MemFSTest) RenameOverExistingDirectory() {
|
||||||
err = os.Mkdir(newPath, 0600)
|
err = os.Mkdir(newPath, 0600)
|
||||||
AssertEq(nil, err)
|
AssertEq(nil, err)
|
||||||
|
|
||||||
// Renaming over the non-empty one shouldn't work.
|
// Renaming over the non-empty directory shouldn't work.
|
||||||
err = os.Rename(newPath, oldPath)
|
err = os.Rename(newPath, oldPath)
|
||||||
ExpectThat(err, Error(HasSubstr("not empty")))
|
ExpectThat(err, Error(MatchesRegexp("not empty|file exists")))
|
||||||
|
|
||||||
// But the other way around should.
|
// As of Go 1.8 this shouldn't work the other way around either (see
|
||||||
err = os.Rename(oldPath, newPath)
|
// https://github.com/golang/go/commit/321c312).
|
||||||
AssertEq(nil, err)
|
if atLeastGo18 {
|
||||||
|
err = os.Rename(oldPath, newPath)
|
||||||
|
ExpectThat(err, Error(HasSubstr("file exists")))
|
||||||
|
|
||||||
// Check the parent listing.
|
// Both should still be present in the parent listing.
|
||||||
entries, err := fusetesting.ReadDirPicky(t.Dir)
|
entries, err := fusetesting.ReadDirPicky(t.Dir)
|
||||||
AssertEq(nil, err)
|
AssertEq(nil, err)
|
||||||
AssertEq(1, len(entries))
|
ExpectEq(2, len(entries))
|
||||||
fi := entries[0]
|
}
|
||||||
|
|
||||||
ExpectEq(path.Base(newPath), fi.Name())
|
|
||||||
ExpectEq(os.FileMode(0700)|os.ModeDir, fi.Mode())
|
|
||||||
|
|
||||||
// And the directory itself.
|
|
||||||
entries, err = fusetesting.ReadDirPicky(newPath)
|
|
||||||
AssertEq(nil, err)
|
|
||||||
AssertEq(1, len(entries))
|
|
||||||
fi = entries[0]
|
|
||||||
|
|
||||||
ExpectEq("child", fi.Name())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *MemFSTest) RenameOverExisting_WrongType() {
|
func (t *MemFSTest) RenameOverExisting_WrongType() {
|
||||||
|
@ -1605,9 +1596,9 @@ func (t *MemFSTest) RenameOverExisting_WrongType() {
|
||||||
err = os.Mkdir(dirPath, 0700)
|
err = os.Mkdir(dirPath, 0700)
|
||||||
AssertEq(nil, err)
|
AssertEq(nil, err)
|
||||||
|
|
||||||
// Renaming one over the other shouldn't work.
|
// Renaming either over the other shouldn't work.
|
||||||
err = os.Rename(filePath, dirPath)
|
err = os.Rename(filePath, dirPath)
|
||||||
ExpectThat(err, Error(HasSubstr("is a directory")))
|
ExpectThat(err, Error(MatchesRegexp("is a directory|file exists")))
|
||||||
|
|
||||||
err = os.Rename(dirPath, filePath)
|
err = os.Rename(dirPath, filePath)
|
||||||
ExpectThat(err, Error(HasSubstr("not a directory")))
|
ExpectThat(err, Error(HasSubstr("not a directory")))
|
||||||
|
|
Loading…
Reference in New Issue