Skip to content

Commit eb45753

Browse files
committed
fix flate write pool size to work with best compression
1 parent 2257eda commit eb45753

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

compression.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const (
1919
)
2020

2121
var (
22-
flateWriterPools [maxCompressionLevel - minCompressionLevel]sync.Pool
22+
flateWriterPools [maxCompressionLevel - minCompressionLevel + 1]sync.Pool
2323
flateReaderPool = sync.Pool{New: func() interface{} {
2424
return flate.NewReader(nil)
2525
}}

compression_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,28 @@ func textMessages(num int) [][]byte {
4141
return messages
4242
}
4343

44+
func TestCompressNoContextTakeover(t *testing.T) {
45+
for level := minCompressionLevel; level <= maxCompressionLevel; level++ {
46+
message := textMessages(1)[0]
47+
c := fakeNetConn{Reader: nil, Writer: ioutil.Discard}
48+
f := compressNoContextTakeover(c, level)
49+
n, err := f.Write(message)
50+
if err != nil {
51+
t.Errorf("Error writing using compressNoContextTakeover on level %d: %v", level, err)
52+
return
53+
}
54+
if n != len(message) {
55+
t.Errorf("Error writing using compressNoContextTakeover on level %d: not enough bytes written", level)
56+
return
57+
}
58+
err = f.Close()
59+
if err != nil {
60+
t.Errorf("Error closing writer on level %d: %v", level, err)
61+
return
62+
}
63+
}
64+
}
65+
4466
func BenchmarkWriteNoCompression(b *testing.B) {
4567
w := ioutil.Discard
4668
c := newConn(fakeNetConn{Reader: nil, Writer: w}, false, 1024, 1024)

0 commit comments

Comments
 (0)