Skip to content

Commit f3f88b3

Browse files
committed
Provide test coverage for Reset methods
1 parent 944bf79 commit f3f88b3

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

ar_test.go

+61
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,33 @@ func TestReaderBasics(t *testing.T) {
205205
}
206206
}
207207

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+
208235
func BenchmarkReaderBigFiles(b *testing.B) {
209236
benchmarkReader(b, 8, 8*1024*1024)
210237
}
@@ -299,6 +326,40 @@ func TestWriterBasics(t *testing.T) {
299326
}
300327
}
301328

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\nwant\n%q", i, archive, testCommon)
357+
}
358+
b.Reset()
359+
w.Reset(b)
360+
}
361+
}
362+
302363
type fileEntry struct {
303364
meta *fileInfo
304365
input *bytes.Reader

0 commit comments

Comments
 (0)