diff --git a/cmd/tar-split/tar_benchmark_test.go b/cmd/tar-split/tar_benchmark_test.go index f318645..950eccc 100644 --- a/cmd/tar-split/tar_benchmark_test.go +++ b/cmd/tar-split/tar_benchmark_test.go @@ -29,9 +29,14 @@ func BenchmarkUpstreamTar(b *testing.B) { fh.Close() b.Fatal(err) } - io.Copy(ioutil.Discard, tr) + _, err = io.Copy(ioutil.Discard, tr) + if err != nil { + b.Fatal(err) + } + } + if err := fh.Close(); err != nil { + b.Fatal(err) } - fh.Close() } } @@ -52,9 +57,14 @@ func BenchmarkOurTarNoAccounting(b *testing.B) { fh.Close() b.Fatal(err) } - io.Copy(ioutil.Discard, tr) + _, err = io.Copy(ioutil.Discard, tr) + if err != nil { + b.Fatal(err) + } + } + if err := fh.Close(); err != nil { + b.Fatal(err) } - fh.Close() } } func BenchmarkOurTarYesAccounting(b *testing.B) { @@ -76,9 +86,14 @@ func BenchmarkOurTarYesAccounting(b *testing.B) { fh.Close() b.Fatal(err) } - io.Copy(ioutil.Discard, tr) + _, err = io.Copy(ioutil.Discard, tr) + if err != nil { + b.Fatal(err) + } _ = tr.RawBytes() } - fh.Close() + if err := fh.Close(); err != nil { + b.Fatal(err) + } } } diff --git a/tar/asm/assemble.go b/tar/asm/assemble.go index d624450..3eb32ab 100644 --- a/tar/asm/assemble.go +++ b/tar/asm/assemble.go @@ -71,6 +71,8 @@ func WriteOutputTarStream(fg storage.FileGetter, up storage.Unpacker, w io.Write crcSum = make([]byte, 8) multiWriter = io.MultiWriter(w, crcHash) copyBuffer = byteBufferPool.Get().([]byte) + // TODO once we have some benchmark or memory profile then we can experiment with using *bytes.Buffer + //nolint:staticcheck // SA6002 not going to do a pointer here defer byteBufferPool.Put(copyBuffer) } else { crcHash.Reset() diff --git a/tar/asm/disassemble_test.go b/tar/asm/disassemble_test.go index 5e03597..4141aa0 100644 --- a/tar/asm/disassemble_test.go +++ b/tar/asm/disassemble_test.go @@ -18,13 +18,11 @@ func TestLargeJunkPadding(t *testing.T) { // Write a normal tar file into the pipe and then load it full of junk // bytes as padding. We have to do this in a goroutine because we can't // store 20GB of junk in-memory. - var err error - go func(e error) { + go func() { // Empty archive. tw := tar.NewWriter(pW) if err := tw.Close(); err != nil { pW.CloseWithError(err) - e = err return } @@ -36,7 +34,6 @@ func TestLargeJunkPadding(t *testing.T) { devZero, err := os.Open("/dev/zero") if err != nil { pW.CloseWithError(err) - e = err return } defer devZero.Close() @@ -46,17 +43,13 @@ func TestLargeJunkPadding(t *testing.T) { } if _, err := io.CopyN(pW, devZero, junkChunkSize); err != nil { pW.CloseWithError(err) - e = err return } } fmt.Fprintln(os.Stderr, "[TestLargeJunkPadding] junk chunk finished") pW.Close() - }(err) - if err != nil { - t.Fatal(err) - } + }() // Disassemble our junk file. nilPacker := storage.NewJSONPacker(ioutil.Discard) diff --git a/tar/storage/packer_test.go b/tar/storage/packer_test.go index 7d93371..2d8f2b6 100644 --- a/tar/storage/packer_test.go +++ b/tar/storage/packer_test.go @@ -199,7 +199,9 @@ func BenchmarkGetPut(b *testing.B) { b.Fatal(err) } } - fh.Sync() + if err := fh.Sync(); err != nil { + b.Fatal(err) + } up := NewJSONUnpacker(fh) for {