summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--file.go8
-rw-r--r--fs_test.go5
2 files changed, 10 insertions, 3 deletions
diff --git a/file.go b/file.go
index 061e6a2..f41d88e 100644
--- a/file.go
+++ b/file.go
@@ -31,6 +31,14 @@ func (f *File) Close() error {
return nil
}
+func (f *File) CloseWriterWithError(err error) error {
+ if f.w == nil {
+ return ErrUnsupported
+ }
+ pw := f.w.(*io.PipeWriter)
+ return pw.CloseWithError(err)
+}
+
// implements io.Reader
func (f *File) Read(b []byte) (int, error) {
if f.r == nil {
diff --git a/fs_test.go b/fs_test.go
index 7e9765c..7752858 100644
--- a/fs_test.go
+++ b/fs_test.go
@@ -90,10 +90,9 @@ func TestFsWriteError(t *testing.T) {
f, err := afs.Fs.Create("dir/file")
is.NoErr(err)
- w := f.(*File).w.(*io.PipeWriter)
- _, err = w.Write(testdata)
+ _, err = f.Write(testdata)
is.NoErr(err)
- err = w.CloseWithError(errors.New("disk died"))
+ err = f.(*File).CloseWriterWithError(errors.New("disk died"))
is.NoErr(err)
_, err = afs.Stat("dir/file")
is.Equal(err, os.ErrNotExist)