aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-05 21:16:53 +0800
committerGravatar Runxi Yu2026-03-05 21:16:53 +0800
commite0477f165d0050ce20a4a4dbaee49fe968e886eb (patch)
tree2a6560b04eea5ea2d749444246620896d932726f
parent*: Fix overflows (diff)
signatureNo signature
internal/compress/zlib: Check errors properly and prettify
-rw-r--r--internal/compress/zlib/reader_test.go4
-rw-r--r--internal/compress/zlib/writer_test.go50
2 files changed, 45 insertions, 9 deletions
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