X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c86cbaa6f286e50900dae3203a42044449e042f7..45c611003d84157370f7356b62ba8aa6972535a1:/sdk/go/keepclient/collectionreader_test.go diff --git a/sdk/go/keepclient/collectionreader_test.go b/sdk/go/keepclient/collectionreader_test.go index 6e743f9a9e..75603f1baa 100644 --- a/sdk/go/keepclient/collectionreader_test.go +++ b/sdk/go/keepclient/collectionreader_test.go @@ -1,3 +1,7 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: Apache-2.0 + package keepclient import ( @@ -11,8 +15,8 @@ import ( "strconv" "strings" - "git.curoverse.com/arvados.git/sdk/go/arvadosclient" - "git.curoverse.com/arvados.git/sdk/go/arvadostest" + "git.arvados.org/arvados.git/sdk/go/arvadosclient" + "git.arvados.org/arvados.git/sdk/go/arvadostest" check "gopkg.in/check.v1" ) @@ -78,6 +82,7 @@ func (h SuccessHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request) { if !ok { resp.WriteHeader(http.StatusNotFound) } else { + resp.Header().Set("Content-Length", fmt.Sprintf("%d", len(buf))) resp.Write(buf) } default: @@ -129,11 +134,11 @@ func (s *CollectionReaderUnit) TestCollectionReaderContent(c *check.C) { c.Check(err, check.Equals, want) case string: buf := make([]byte, len(want)) - n, err := io.ReadFull(rdr, buf) + _, err := io.ReadFull(rdr, buf) c.Check(err, check.IsNil) for i := 0; i < 4; i++ { c.Check(string(buf), check.Equals, want) - n, err = rdr.Read(buf) + n, err := rdr.Read(buf) c.Check(n, check.Equals, 0) c.Check(err, check.Equals, io.EOF) } @@ -146,6 +151,7 @@ func (s *CollectionReaderUnit) TestCollectionReaderContent(c *check.C) { c.Check(offset, check.Equals, int64(a)) buf := make([]byte, b-a) n, err := io.ReadFull(rdr, buf) + c.Check(err, check.IsNil) c.Check(n, check.Equals, b-a) c.Check(string(buf), check.Equals, want[a:b]) } @@ -161,12 +167,13 @@ func (s *CollectionReaderUnit) TestCollectionReaderContent(c *check.C) { func (s *CollectionReaderUnit) TestCollectionReaderManyBlocks(c *check.C) { h := md5.New() - var testdata []byte buf := make([]byte, 4096) locs := make([]string, len(buf)) + testdata := make([]byte, 0, len(buf)*len(buf)) filesize := 0 - for i := 0; i < len(locs); i++ { + for i := range locs { _, err := rand.Read(buf[:i]) + c.Assert(err, check.IsNil) h.Write(buf[:i]) locs[i], _, err = s.kc.PutB(buf[:i]) c.Assert(err, check.IsNil) @@ -196,9 +203,9 @@ func (s *CollectionReaderUnit) TestCollectionReaderManyBlocks(c *check.C) { offset := rand.Intn(len(buf) - 1) count := rand.Intn(len(buf) - offset) if rand.Intn(2) == 0 { - curPos, err = rdr.Seek(int64(offset)-curPos, io.SeekCurrent) + curPos, _ = rdr.Seek(int64(offset)-curPos, io.SeekCurrent) } else { - curPos, err = rdr.Seek(int64(offset), io.SeekStart) + curPos, _ = rdr.Seek(int64(offset), io.SeekStart) } c.Check(curPos, check.Equals, int64(offset)) for count > 0 { @@ -209,16 +216,18 @@ func (s *CollectionReaderUnit) TestCollectionReaderManyBlocks(c *check.C) { count -= n } curPos, err = rdr.Seek(0, io.SeekCurrent) + c.Check(err, check.IsNil) c.Check(curPos, check.Equals, int64(offset)) } c.Check(md5.Sum(buf), check.DeepEquals, md5.Sum(testdata)) c.Check(buf[:1000], check.DeepEquals, testdata[:1000]) + expectPos := curPos + size + 12345 curPos, err = rdr.Seek(size+12345, io.SeekCurrent) c.Check(err, check.IsNil) - c.Check(curPos, check.Equals, size) + c.Check(curPos, check.Equals, expectPos) - curPos, err = rdr.Seek(8-size, io.SeekCurrent) + curPos, err = rdr.Seek(8-curPos, io.SeekCurrent) c.Check(err, check.IsNil) c.Check(curPos, check.Equals, int64(8))