PageCacheTest.SingleFileHandle_NoKeepCache

geesefs-0-30-9
Aaron Jacobs 2015-07-29 05:41:31 +00:00
parent 28ee2de1e9
commit a95b1fb276
2 changed files with 38 additions and 10 deletions

View File

@ -61,6 +61,10 @@ type CachingFS interface {
// Cause further queries for the attributes of inodes to use the supplied
// time as the inode's mtime.
SetMtime(mtime time.Time)
// Instruct the file system whether or not to reply to OpenFileOp with
// FOPEN_KEEP_CACHE set.
SetKeepCache(keep bool)
}
// Create a file system that issues cacheable responses according to the
@ -240,9 +244,6 @@ func (fs *cachingFS) SetMtime(mtime time.Time) {
fs.mtime = mtime
}
// Instruct the file system whether or not to reply to OpenFileOp with
// FOPEN_KEEP_CACHE set.
//
// LOCKS_EXCLUDED(fs.mu)
func (fs *cachingFS) SetKeepCache(keep bool) {
// TODO

View File

@ -15,6 +15,8 @@
package cachingfs_test
import (
"bytes"
"io/ioutil"
"os"
"path"
"runtime"
@ -553,18 +555,43 @@ func (t *PageCacheTest) SetUp(ti *TestInfo) {
t.cachingFSTest.setUp(ti, lookupEntryTimeout, getattrTimeout)
}
func (t *PageCacheTest) SingleFile_NoKeepCache() {
func (t *PageCacheTest) SingleFileHandle_NoKeepCache() {
t.fs.SetKeepCache(false)
// Open the file.
f, err := os.Open(path.Join(t.Dir, "foo"))
AssertEq(nil, err)
defer f.Close()
// Read its contents once.
f.Seek(0, 0)
AssertEq(nil, err)
c1, err := ioutil.ReadAll(f)
AssertEq(nil, err)
AssertEq(cachingfs.FooSize, len(c1))
// And again.
f.Seek(0, 0)
AssertEq(nil, err)
c2, err := ioutil.ReadAll(f)
AssertEq(nil, err)
AssertEq(cachingfs.FooSize, len(c2))
// We should have seen the same contents each time.
ExpectTrue(bytes.Equal(c1, c2))
}
func (t *PageCacheTest) SingleFileHandle_KeepCache() {
AssertTrue(false, "TODO")
}
func (t *PageCacheTest) SingleFile_KeepCache() {
func (t *PageCacheTest) TwoFileHandles_NoKeepCache() {
AssertTrue(false, "TODO")
}
func (t *PageCacheTest) TwoFiles_NoKeepCache() {
AssertTrue(false, "TODO")
}
func (t *PageCacheTest) TwoFiles_KeepCache() {
func (t *PageCacheTest) TwoFileHandles_KeepCache() {
AssertTrue(false, "TODO")
}