@@ -205,6 +205,33 @@ func TestReaderBasics(t *testing.T) {
205
205
}
206
206
}
207
207
208
+ func TestReaderReset (t * testing.T ) {
209
+ r := NewReader (strings .NewReader (testCommon ))
210
+ for i := 0 ; i < 2 ; i ++ {
211
+ fi , err := r .Next ()
212
+ if err != nil {
213
+ t .Fatal (err )
214
+ return
215
+ }
216
+ if fi .Name () != "debian-binary" {
217
+ t .Errorf ("%d: Name" , i )
218
+ }
219
+ fi , err = r .Next ()
220
+ if err != nil {
221
+ t .Fatal (err )
222
+ return
223
+ }
224
+ if fi .Name () != "control.tar.gz" {
225
+ t .Errorf ("%d: Name2" , i )
226
+ }
227
+ fi , err = r .Next ()
228
+ if err != io .EOF {
229
+ t .Errorf ("%d: expected EOF, got %v" , i , err )
230
+ }
231
+ r .Reset (strings .NewReader (testCommon ))
232
+ }
233
+ }
234
+
208
235
func BenchmarkReaderBigFiles (b * testing.B ) {
209
236
benchmarkReader (b , 8 , 8 * 1024 * 1024 )
210
237
}
@@ -299,6 +326,40 @@ func TestWriterBasics(t *testing.T) {
299
326
}
300
327
}
301
328
329
+ func TestWriterReset (t * testing.T ) {
330
+ b := new (bytes.Buffer )
331
+ w := NewWriter (b )
332
+ for i := 0 ; i < 2 ; i ++ {
333
+ debian := & fileInfo {
334
+ name : "debian-binary" ,
335
+ mtime : time .Unix (1385068169 , 0 ),
336
+ mode : os .FileMode (0100644 ) & os .ModePerm ,
337
+ size : 4 ,
338
+ }
339
+ if _ , err := w .WriteFile (debian , strings .NewReader ("2.0\n " )); err != nil {
340
+ t .Errorf ("%d: %q" , i , err )
341
+ return
342
+ }
343
+
344
+ control := & fileInfo {
345
+ name : "control.tar.gz" ,
346
+ mtime : time .Unix (1385068169 , 0 ),
347
+ mode : os .FileMode (0100644 ) & os .ModePerm ,
348
+ size : 0 ,
349
+ }
350
+ if _ , err := w .WriteFile (control , strings .NewReader ("" )); err != nil {
351
+ t .Errorf ("%d: %q" , i , err )
352
+ return
353
+ }
354
+
355
+ if archive := b .String (); archive != testCommon {
356
+ t .Errorf ("%d: got\n %q\n want\n %q" , i , archive , testCommon )
357
+ }
358
+ b .Reset ()
359
+ w .Reset (b )
360
+ }
361
+ }
362
+
302
363
type fileEntry struct {
303
364
meta * fileInfo
304
365
input * bytes.Reader
0 commit comments