FlushFSTest.CloseError

geesefs-0-30-9
Aaron Jacobs 2015-03-20 12:01:59 +11:00
parent 4b0c377865
commit f3c4cc1048
1 changed files with 36 additions and 1 deletions

View File

@ -21,6 +21,7 @@ import (
"sync"
"testing"
"github.com/jacobsa/fuse"
"github.com/jacobsa/fuse/samples"
"github.com/jacobsa/fuse/samples/flushfs"
. "github.com/jacobsa/oglematchers"
@ -103,6 +104,22 @@ func (t *FlushFSTest) getFsyncs() (p []string) {
return
}
// LOCKS_EXCLUDED(t.mu)
func (t *FlushFSTest) setFlushError(err error) {
t.mu.Lock()
defer t.mu.Unlock()
t.flushErr = err
}
// LOCKS_EXCLUDED(t.mu)
func (t *FlushFSTest) setFsyncError(err error) {
t.mu.Lock()
defer t.mu.Unlock()
t.fsyncErr = err
}
////////////////////////////////////////////////////////////////////////
// Tests
////////////////////////////////////////////////////////////////////////
@ -324,7 +341,25 @@ func (t *FlushFSTest) CloseReports_MultipleTimes_OverlappingFileHandles() {
}
func (t *FlushFSTest) CloseError() {
AssertTrue(false, "TODO")
// Open a file.
f, err := os.OpenFile(path.Join(t.Dir, "foo"), os.O_RDWR, 0)
AssertEq(nil, err)
defer func() {
if f != nil {
ExpectEq(nil, f.Close())
}
}()
// Configure a flush error.
t.setFlushError(fuse.ENOENT)
// Close the file.
err = f.Close()
f = nil
AssertNe(nil, err)
ExpectThat(err, Error(HasSubstr("TODO")))
}
func (t *FlushFSTest) FsyncReports() {