9 func TestTarWriter(t *testing.T) {
10 tf := NewMapDirectory(map[string]Node{
11 "file.txt": NewBytesFile([]byte(text)),
12 "boop": NewMapDirectory(map[string]Node{
13 "a.txt": NewBytesFile([]byte("bleep")),
14 "b.txt": NewBytesFile([]byte("bloop")),
16 "beep.txt": NewBytesFile([]byte("beep")),
20 tw, err := NewTarWriter(pw)
24 tr := tar.NewReader(pr)
28 if err := tw.WriteFile(tf, ""); err != nil {
35 checkHeader := func(name string, typ byte, size int64) {
37 t.Errorf("got wrong name: %s != %s", cur.Name, name)
39 if cur.Typeflag != typ {
40 t.Errorf("got wrong type: %d != %d", cur.Typeflag, typ)
43 t.Errorf("got wrong size: %d != %d", cur.Size, size)
47 if cur, err = tr.Next(); err != nil {
50 checkHeader("", tar.TypeDir, 0)
52 if cur, err = tr.Next(); err != nil {
55 checkHeader("beep.txt", tar.TypeReg, 4)
57 if cur, err = tr.Next(); err != nil {
60 checkHeader("boop", tar.TypeDir, 0)
62 if cur, err = tr.Next(); err != nil {
65 checkHeader("boop/a.txt", tar.TypeReg, 5)
67 if cur, err = tr.Next(); err != nil {
70 checkHeader("boop/b.txt", tar.TypeReg, 5)
72 if cur, err = tr.Next(); err != nil {
75 checkHeader("file.txt", tar.TypeReg, 13)
77 if cur, err = tr.Next(); err != io.EOF {