PageCacheTest.SingleFileHandle_NoKeepCache
parent
28ee2de1e9
commit
a95b1fb276
|
@ -61,6 +61,10 @@ type CachingFS interface {
|
||||||
// Cause further queries for the attributes of inodes to use the supplied
|
// Cause further queries for the attributes of inodes to use the supplied
|
||||||
// time as the inode's mtime.
|
// time as the inode's mtime.
|
||||||
SetMtime(mtime time.Time)
|
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
|
// 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
|
fs.mtime = mtime
|
||||||
}
|
}
|
||||||
|
|
||||||
// Instruct the file system whether or not to reply to OpenFileOp with
|
|
||||||
// FOPEN_KEEP_CACHE set.
|
|
||||||
//
|
|
||||||
// LOCKS_EXCLUDED(fs.mu)
|
// LOCKS_EXCLUDED(fs.mu)
|
||||||
func (fs *cachingFS) SetKeepCache(keep bool) {
|
func (fs *cachingFS) SetKeepCache(keep bool) {
|
||||||
// TODO
|
// TODO
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
package cachingfs_test
|
package cachingfs_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
@ -553,18 +555,43 @@ func (t *PageCacheTest) SetUp(ti *TestInfo) {
|
||||||
t.cachingFSTest.setUp(ti, lookupEntryTimeout, getattrTimeout)
|
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")
|
AssertTrue(false, "TODO")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *PageCacheTest) SingleFile_KeepCache() {
|
func (t *PageCacheTest) TwoFileHandles_NoKeepCache() {
|
||||||
AssertTrue(false, "TODO")
|
AssertTrue(false, "TODO")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *PageCacheTest) TwoFiles_NoKeepCache() {
|
func (t *PageCacheTest) TwoFileHandles_KeepCache() {
|
||||||
AssertTrue(false, "TODO")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *PageCacheTest) TwoFiles_KeepCache() {
|
|
||||||
AssertTrue(false, "TODO")
|
AssertTrue(false, "TODO")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue