X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0f644e242ef37c911ad3dc25aca8135c339de349..865e5c1e3730117870eb1e485d553383626b882f:/sdk/go/keepclient/hashcheck_test.go diff --git a/sdk/go/keepclient/hashcheck_test.go b/sdk/go/keepclient/hashcheck_test.go index db748ee98e..44345afda6 100644 --- a/sdk/go/keepclient/hashcheck_test.go +++ b/sdk/go/keepclient/hashcheck_test.go @@ -8,9 +8,10 @@ import ( "bytes" "crypto/md5" "fmt" - . "gopkg.in/check.v1" "io" "io/ioutil" + + . "gopkg.in/check.v1" ) type HashcheckSuiteSuite struct{} @@ -86,4 +87,17 @@ func (h *HashcheckSuiteSuite) TestWriteTo(c *C) { c.Check(err, Equals, BadChecksum) <-done } + + // If WriteTo stops early due to a write error, return the + // write error (not "bad checksum"). + { + input := bytes.NewBuffer(make([]byte, 1<<26)) + hcr := HashCheckingReader{input, md5.New(), hash} + r, w := io.Pipe() + r.Close() + n, err := hcr.WriteTo(w) + c.Check(n, Equals, int64(0)) + c.Check(err, NotNil) + c.Check(err, Not(Equals), BadChecksum) + } }