AttributeCachingTest.StatMtimeStat_ViaFileDescriptor

geesefs-0-30-9
Aaron Jacobs 2015-03-17 14:27:23 +11:00
parent c7db9c22ec
commit 69c73e39d4
1 changed files with 30 additions and 0 deletions

View File

@ -460,6 +460,36 @@ func (t *AttributeCachingTest) StatMtimeStat() {
ExpectThat(barAfter.ModTime(), timeutil.TimeEq(newMtime))
}
func (t *AttributeCachingTest) StatMtimeStat_ViaFileDescriptor() {
newMtime := t.initialMtime.Add(time.Second)
// Open everything, fixing a particular inode number for each.
foo, dir, bar := t.openFiles()
defer func() {
foo.Close()
dir.Close()
bar.Close()
}()
fooBefore, dirBefore, barBefore := t.statFiles(foo, dir, bar)
t.fs.SetMtime(newMtime)
fooAfter, dirAfter, barAfter := t.statFiles(foo, dir, bar)
// We should still see the old cached mtime.
ExpectThat(fooAfter.ModTime(), timeutil.TimeEq(fooBefore.ModTime()))
ExpectThat(dirAfter.ModTime(), timeutil.TimeEq(dirBefore.ModTime()))
ExpectThat(barAfter.ModTime(), timeutil.TimeEq(barBefore.ModTime()))
// After waiting for the attribute cache to expire, we should see the fresh
// mtime.
time.Sleep(2 * t.getattrTimeout)
fooAfter, dirAfter, barAfter = t.statFiles(foo, dir, bar)
ExpectThat(fooAfter.ModTime(), timeutil.TimeEq(newMtime))
ExpectThat(dirAfter.ModTime(), timeutil.TimeEq(newMtime))
ExpectThat(barAfter.ModTime(), timeutil.TimeEq(newMtime))
}
func (t *AttributeCachingTest) StatRenumberMtimeStat() {
newMtime := t.initialMtime.Add(time.Second)