From a8056c4c12a4a70c8a1bbd34c395752f252ed4e7 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 20 Mar 2015 03:17:08 -0700 Subject: [PATCH] Return error during JoinFiles back to the caller for inspection --- pkg/utils/split/split.go | 9 ++++++--- pkg/utils/split/split_test.go | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/pkg/utils/split/split.go b/pkg/utils/split/split.go index b59d4bc0e..ba83d3240 100644 --- a/pkg/utils/split/split.go +++ b/pkg/utils/split/split.go @@ -103,11 +103,12 @@ func splitStreamGoRoutine(reader io.Reader, chunkSize uint64, ch chan Message) { // fmt.Println(buf) // } // -func JoinFiles(dirname string, inputPrefix string) io.Reader { +func JoinFiles(dirname string, inputPrefix string) (io.Reader, error) { reader, writer := io.Pipe() fileInfos, readError := ioutil.ReadDir(dirname) if readError != nil { writer.CloseWithError(readError) + return nil, readError } var newfileInfos []os.FileInfo @@ -118,11 +119,13 @@ func JoinFiles(dirname string, inputPrefix string) io.Reader { } if len(newfileInfos) == 0 { - writer.CloseWithError(errors.New("no files found for given prefix")) + nofilesError := errors.New("no files found for given prefix " + inputPrefix) + writer.CloseWithError(nofilesError) + return nil, nofilesError } go joinFilesGoRoutine(newfileInfos, writer) - return reader + return reader, nil } func joinFilesGoRoutine(fileInfos []os.FileInfo, writer *io.PipeWriter) { diff --git a/pkg/utils/split/split_test.go b/pkg/utils/split/split_test.go index 41d0701c3..6100f9c5b 100644 --- a/pkg/utils/split/split_test.go +++ b/pkg/utils/split/split_test.go @@ -60,10 +60,13 @@ func (s *MySuite) TestFileSplitJoin(c *C) { devnull, err := os.OpenFile(os.DevNull, 2, os.ModeAppend) defer devnull.Close() - reader := split.JoinFiles(".", "ERROR") - _, err = io.Copy(devnull, reader) + + var reader io.Reader + reader, err = split.JoinFiles(".", "ERROR") c.Assert(err, Not(IsNil)) - reader = split.JoinFiles(".", "TESTPREFIX") + + reader, err = split.JoinFiles(".", "TESTPREFIX") + c.Assert(err, IsNil) _, err = io.Copy(devnull, reader) c.Assert(err, IsNil) }