@@ -97,35 +97,41 @@ func TestResetDict(t *testing.T) {
97
97
}
98
98
}
99
99
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
+ })
131
137
}
0 commit comments