From e0477f165d0050ce20a4a4dbaee49fe968e886eb Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Thu, 5 Mar 2026 21:16:53 +0800 Subject: internal/compress/zlib: Check errors properly and prettify --- internal/compress/zlib/reader_test.go | 4 +-- internal/compress/zlib/writer_test.go | 50 ++++++++++++++++++++++++++++++----- 2 files changed, 45 insertions(+), 9 deletions(-) (limited to 'internal') diff --git a/internal/compress/zlib/reader_test.go b/internal/compress/zlib/reader_test.go index e8a44007..6fda1f27 100644 --- a/internal/compress/zlib/reader_test.go +++ b/internal/compress/zlib/reader_test.go @@ -40,7 +40,8 @@ var zlibTests = []zlibTest{ { "truncated checksum", "", - []byte{0x78, 0xbb, 0x00, 0x01, 0x00, 0x01, 0xca, 0x48, + []byte{ + 0x78, 0xbb, 0x00, 0x01, 0x00, 0x01, 0xca, 0x48, 0xcd, 0xc9, 0xc9, 0xd7, 0x51, 0x28, 0xcf, 0x2f, 0xca, 0x49, 0x01, 0x04, 0x00, 0x00, 0xff, 0xff, }, @@ -162,7 +163,6 @@ func TestDecompressor(t *testing.T) { continue } - defer zr.Close() // Read and verify correctness of data. b.Reset() diff --git a/internal/compress/zlib/writer_test.go b/internal/compress/zlib/writer_test.go index 6deffdb8..e7d73c21 100644 --- a/internal/compress/zlib/writer_test.go +++ b/internal/compress/zlib/writer_test.go @@ -32,7 +32,12 @@ func testFileLevelDict(t *testing.T, fn string, level int, d string) { return } - defer golden.Close() + defer func() { + err := golden.Close() + if err != nil { + t.Fatalf("%s (level=%d, dict=%q): close golden: %v", fn, level, d, err) + } + }() b0, err0 := io.ReadAll(golden) if err0 != nil { @@ -53,10 +58,20 @@ func testLevelDict(t *testing.T, fn string, b0 []byte, level int, d string) { // Push data through a pipe that compresses at the write end, and decompresses at the read end. piper, pipew := io.Pipe() - defer piper.Close() + defer func() { + err := piper.Close() + if err != nil { + t.Fatalf("%s (level=%d, dict=%q): close piper: %v", fn, level, d, err) + } + }() go func() { - defer pipew.Close() + defer func() { + err := pipew.Close() + if err != nil { + t.Errorf("%s (level=%d, dict=%q): close pipew: %v", fn, level, d, err) + } + }() zlibw, err := NewWriterLevelDict(pipew, level, dict) if err != nil { @@ -64,7 +79,12 @@ func testLevelDict(t *testing.T, fn string, b0 []byte, level int, d string) { return } - defer zlibw.Close() + defer func() { + err := zlibw.Close() + if err != nil { + t.Errorf("%s (level=%d, dict=%q): close zlibw: %v", fn, level, d, err) + } + }() _, err = zlibw.Write(b0) if err != nil { @@ -80,7 +100,12 @@ func testLevelDict(t *testing.T, fn string, b0 []byte, level int, d string) { return } - defer zlibr.Close() + defer func() { + err := zlibr.Close() + if err != nil { + t.Fatalf("%s (level=%d, dict=%q): close zlibr: %v", fn, level, d, err) + } + }() // Compare the decompressed data. b1, err1 := io.ReadAll(zlibr) @@ -173,8 +198,19 @@ func TestWriterDictIsUsed(t *testing.T) { return } - compressor.Write(input) - compressor.Close() + _, err = compressor.Write(input) + if err != nil { + t.Errorf("error in compressor.Write: %s", err) + + return + } + + err = compressor.Close() + if err != nil { + t.Errorf("error in compressor.Close: %s", err) + + return + } const expectedMaxSize = 25 -- cgit v1.3.1-10-gc9f91