X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c9fe930b422bd1675af3adb324ede3b5aa28888c..63143617792648585a4c072390cbb58bcfdcfdce:/services/keepstore/unix_volume_test.go diff --git a/services/keepstore/unix_volume_test.go b/services/keepstore/unix_volume_test.go index 7777363b9d..6b42dbc519 100644 --- a/services/keepstore/unix_volume_test.go +++ b/services/keepstore/unix_volume_test.go @@ -405,13 +405,13 @@ func (s *UnixVolumeSuite) TestStats(c *check.C) { c.Check(stats(), check.Matches, `.*"OutBytes":3,.*`) c.Check(stats(), check.Matches, `.*"CreateOps":1,.*`) c.Check(stats(), check.Matches, `.*"OpenOps":0,.*`) - c.Check(stats(), check.Matches, `.*"UtimesOps":0,.*`) + c.Check(stats(), check.Matches, `.*"UtimesOps":1,.*`) err = vol.Touch(loc) c.Check(err, check.IsNil) c.Check(stats(), check.Matches, `.*"FlockOps":1,.*`) c.Check(stats(), check.Matches, `.*"OpenOps":1,.*`) - c.Check(stats(), check.Matches, `.*"UtimesOps":1,.*`) + c.Check(stats(), check.Matches, `.*"UtimesOps":2,.*`) _, err = vol.Get(context.Background(), loc, make([]byte, 3)) c.Check(err, check.IsNil) @@ -424,3 +424,26 @@ func (s *UnixVolumeSuite) TestStats(c *check.C) { c.Check(err, check.IsNil) c.Check(stats(), check.Matches, `.*"FlockOps":2,.*`) } + +func (s *UnixVolumeSuite) TestSkipUnusedDirs(c *check.C) { + vol := s.newTestableUnixVolume(c, s.cluster, arvados.Volume{Replication: 1}, s.metrics, false) + + err := os.Mkdir(vol.UnixVolume.Root+"/aaa", 0777) + c.Assert(err, check.IsNil) + err = os.Mkdir(vol.UnixVolume.Root+"/.aaa", 0777) // EmptyTrash should not look here + c.Assert(err, check.IsNil) + deleteme := vol.UnixVolume.Root + "/aaa/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.trash.1" + err = ioutil.WriteFile(deleteme, []byte{1, 2, 3}, 0777) + c.Assert(err, check.IsNil) + skipme := vol.UnixVolume.Root + "/.aaa/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.trash.1" + err = ioutil.WriteFile(skipme, []byte{1, 2, 3}, 0777) + c.Assert(err, check.IsNil) + vol.EmptyTrash() + + _, err = os.Stat(skipme) + c.Check(err, check.IsNil) + + _, err = os.Stat(deleteme) + c.Check(err, check.NotNil) + c.Check(os.IsNotExist(err), check.Equals, true) +}