Add staticcheck linter

Fix issues with sync.Pool being passed an array and not a pointer.
See https://github.com/dominikh/go-tools/blob/master/cmd/staticcheck/docs/checks/SA6002

Add missing tests for content.Copy

Fix T.Fatal being called in a goroutine

Signed-off-by: Daniel Nephin <dnephin@gmail.com>
This commit is contained in:
Daniel Nephin
2017-11-27 12:22:22 -05:00
parent 2556c594ec
commit ee04cfa3f9
12 changed files with 165 additions and 63 deletions

View File

@@ -28,7 +28,8 @@ type service struct {
var bufPool = sync.Pool{
New: func() interface{} {
return make([]byte, 1<<20)
buffer := make([]byte, 1<<20)
return &buffer
},
}
@@ -178,7 +179,7 @@ func (s *service) Read(req *api.ReadContentRequest, session api.Content_ReadServ
// TODO(stevvooe): Using the global buffer pool. At 32KB, it is probably
// little inefficient for work over a fast network. We can tune this later.
p = bufPool.Get().([]byte)
p = bufPool.Get().(*[]byte)
)
defer bufPool.Put(p)
@@ -194,13 +195,10 @@ func (s *service) Read(req *api.ReadContentRequest, session api.Content_ReadServ
return grpc.Errorf(codes.OutOfRange, "read past object length %v bytes", oi.Size)
}
if _, err := io.CopyBuffer(
_, err = io.CopyBuffer(
&readResponseWriter{session: session},
io.NewSectionReader(ra, offset, size), p); err != nil {
return err
}
return nil
io.NewSectionReader(ra, offset, size), *p)
return err
}
// readResponseWriter is a writer that places the output into ReadContentRequest messages.