Skip to content

Commit 36bf297

Browse files
committed
Improve inflate reader test, add comment to zip test
1 parent b4b877f commit 36bf297

File tree

2 files changed

+38
-32
lines changed

2 files changed

+38
-32
lines changed

src/archive/zip/zip_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func TestOver65kFiles(t *testing.T) {
3535
for i := 0; i < nFiles; i++ {
3636
_, err := w.CreateHeader(&FileHeader{
3737
Name: fmt.Sprintf("%d.dat", i),
38-
Method: Deflate,
38+
Method: Deflate, // test Issue 59775
3939
})
4040
if err != nil {
4141
t.Fatalf("creating file %d: %v", i, err)

src/compress/flate/inflate_test.go

+37-31
Original file line numberDiff line numberDiff line change
@@ -97,35 +97,41 @@ func TestResetDict(t *testing.T) {
9797
}
9898
}
9999

100-
func TestReaderResetReusesReaderBuffer(t *testing.T) {
101-
encodedBuf := &bytes.Buffer{}
102-
w, _ := NewWriter(encodedBuf, 1)
103-
w.Write([]byte("abc"))
104-
w.Close()
105-
106-
encodedNotByteReader := struct{ io.Reader }{encodedBuf}
107-
108-
f := NewReader(encodedNotByteReader)
109-
bufReader1 := f.(*decompressor).r.(*bufio.Reader)
110-
f.(Resetter).Reset(encodedNotByteReader, nil)
111-
bufReader2 := f.(*decompressor).r.(*bufio.Reader)
112-
if bufReader1 != bufReader2 {
113-
t.Fatalf("bufio.Reader was not reused")
114-
}
115-
f.(Resetter).Reset(encodedBuf, nil)
116-
bufReader3 := f.(*decompressor).r
117-
if bufReader3 != encodedBuf {
118-
t.Fatalf("bufio.Reader was reused, but should be used the provided io.ByteReader directly instead")
119-
}
120-
f.(Resetter).Reset(encodedNotByteReader, nil)
121-
_, ok := f.(*decompressor).r.(*bufio.Reader)
122-
if !ok {
123-
t.Fatalf("new bufio.Reader should be created")
124-
}
125-
f.Close()
126-
f = NewReader(encodedBuf)
127-
bufReader4 := f.(*decompressor).r
128-
if bufReader4 != encodedBuf {
129-
t.Fatalf("bufio.Reader implementing io.ByteReader was not used directly")
130-
}
100+
func TestReaderReusesReaderBuffer(t *testing.T) {
101+
encodedReader := bytes.NewReader([]byte{})
102+
encodedNotByteReader := struct{ io.Reader }{encodedReader}
103+
104+
t.Run("BufferIsReused", func(t *testing.T) {
105+
f := NewReader(encodedNotByteReader).(*decompressor)
106+
bufioR, ok := f.r.(*bufio.Reader)
107+
if !ok {
108+
t.Fatalf("bufio.Reader should be created")
109+
}
110+
f.Reset(encodedNotByteReader, nil)
111+
if bufioR != f.r {
112+
t.Fatalf("bufio.Reader was not reused")
113+
}
114+
})
115+
t.Run("BufferIsNotReusedWhenGotByteReader", func(t *testing.T) {
116+
f := NewReader(encodedNotByteReader).(*decompressor)
117+
if _, ok := f.r.(*bufio.Reader); !ok {
118+
t.Fatalf("bufio.Reader should be created")
119+
}
120+
f.Reset(encodedReader, nil)
121+
if f.r != encodedReader {
122+
t.Fatalf("provided io.ByteReader should be used directly")
123+
}
124+
})
125+
t.Run("BufferIsCreatedAfterByteReader", func(t *testing.T) {
126+
for i, r := range []io.Reader{encodedReader, bufio.NewReader(encodedReader)} {
127+
f := NewReader(r).(*decompressor)
128+
if f.r != r {
129+
t.Fatalf("provided io.ByteReader should be used directly, i=%d", i)
130+
}
131+
f.Reset(encodedNotByteReader, nil)
132+
if _, ok := f.r.(*bufio.Reader); !ok {
133+
t.Fatalf("bufio.Reader should be created, i=%d", i)
134+
}
135+
}
136+
})
131137
}

0 commit comments

Comments
 (0)