diff options
| author | Marin Ivanov <[email protected]> | 2022-08-15 06:51:43 +0300 |
|---|---|---|
| committer | Marin Ivanov <[email protected]> | 2022-08-15 06:51:43 +0300 |
| commit | 36b2b55df13d36f7e34e88a1b10df30fe573a0b7 (patch) | |
| tree | 4b96dbabc973cbc0e688d32167243e10752acfc7 | |
| parent | f8fc14b2e0a10c64de0bd87f831ebde4f705b79b (diff) | |
Add method to close writer with error
| -rw-r--r-- | file.go | 8 | ||||
| -rw-r--r-- | fs_test.go | 5 |
2 files changed, 10 insertions, 3 deletions
@@ -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 { @@ -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) |
