Skip to content

Commit 0acab88

Browse files
committed
memfs: fix Rename leftovers
1 parent 0f02306 commit 0acab88

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

memfs/storage.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,11 @@ func (s *storage) move(from, to string) error {
139139
s.files[to].BaseFilename = filepath.Base(to)
140140
s.children[to] = s.children[from]
141141

142-
delete(s.children, from)
143-
delete(s.files, from)
142+
defer func() {
143+
delete(s.children, from)
144+
delete(s.files, from)
145+
delete(s.children[filepath.Dir(from)], filepath.Base(from))
146+
}()
144147

145148
return s.createParent(to, 0644, s.files[to])
146149
}

test/fs_suite.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,10 @@ func (s *FilesystemSuite) TestRename(c *C) {
523523
err := WriteFile(s.FS, "foo", nil, 0644)
524524
c.Assert(err, IsNil)
525525

526+
files, err := s.FS.ReadDir("")
527+
c.Assert(err, IsNil)
528+
c.Assert(files, HasLen, 1)
529+
526530
err = s.FS.Rename("foo", "bar")
527531
c.Assert(err, IsNil)
528532

@@ -531,8 +535,12 @@ func (s *FilesystemSuite) TestRename(c *C) {
531535
c.Assert(os.IsNotExist(err), Equals, true)
532536

533537
bar, err := s.FS.Stat("bar")
538+
c.Assert(err, IsNil)
534539
c.Assert(bar, NotNil)
540+
541+
files, err = s.FS.ReadDir("")
535542
c.Assert(err, IsNil)
543+
c.Assert(files, HasLen, 1)
536544
}
537545

538546
func (s *FilesystemSuite) TestRenameToDir(c *C) {

0 commit comments

Comments
 (0)