Left: | ||
Right: |
OLD | NEW |
---|---|
1 // Copyright 2009 The Go Authors. All rights reserved. | 1 // Copyright 2009 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 package tar | 5 package tar |
6 | 6 |
7 import ( | 7 import ( |
8 "bytes" | 8 "bytes" |
9 "crypto/md5" | 9 "crypto/md5" |
10 "fmt" | 10 "fmt" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
101 Name: "small2.txt", | 101 Name: "small2.txt", |
102 Mode: 0444, | 102 Mode: 0444, |
103 Uid: 73025, | 103 Uid: 73025, |
104 Gid: 5000, | 104 Gid: 5000, |
105 Size: 11, | 105 Size: 11, |
106 ModTime: time.Unix(1244593104, 0), | 106 ModTime: time.Unix(1244593104, 0), |
107 Typeflag: '\x00', | 107 Typeflag: '\x00', |
108 }, | 108 }, |
109 }, | 109 }, |
110 }, | 110 }, |
111 { | |
112 file: "testdata/pax.tar", | |
113 headers: []*Header{ | |
114 { | |
115 Name: "a/123456789101112131415161718192021 22232425262728293031323334353637383940414243444546474849505152535455565758596061 6263646566676869707172737475767778798081828384858687888990919293949596979899100" , | |
116 Mode: 0664, | |
117 Uid: 1000, | |
118 Gid: 1000, | |
119 Uname: "shane", | |
120 Gname: "shane", | |
121 Size: 7, | |
122 ModTime: time.Unix(1350244992, 23960108), | |
123 ChangeTime: time.Unix(1350244992, 23960108), | |
124 AccessTime: time.Unix(1350244992, 23960108), | |
125 Typeflag: TypeReg, | |
126 }, | |
127 { | |
128 Name: "a/b", | |
129 Mode: 0777, | |
130 Uid: 1000, | |
131 Gid: 1000, | |
132 Uname: "shane", | |
133 Gname: "shane", | |
134 Size: 0, | |
135 ModTime: time.Unix(1350266320, 910238425), | |
136 ChangeTime: time.Unix(1350266320, 910238425), | |
137 AccessTime: time.Unix(1350266320, 910238425), | |
138 Typeflag: TypeSymlink, | |
139 Linkname: "12345678910111213141516171819202122 23242526272829303132333435363738394041424344454647484950515253545556575859606162 63646566676869707172737475767778798081828384858687888990919293949596979899100", | |
140 }, | |
141 }, | |
142 }, | |
111 } | 143 } |
112 | 144 |
113 func TestReader(t *testing.T) { | 145 func TestReader(t *testing.T) { |
114 testLoop: | 146 testLoop: |
115 for i, test := range untarTests { | 147 for i, test := range untarTests { |
116 f, err := os.Open(test.file) | 148 f, err := os.Open(test.file) |
117 if err != nil { | 149 if err != nil { |
118 t.Errorf("test %d: Unexpected error: %v", i, err) | 150 t.Errorf("test %d: Unexpected error: %v", i, err) |
119 continue | 151 continue |
120 } | 152 } |
121 tr := NewReader(f) | 153 tr := NewReader(f) |
122 for j, header := range test.headers { | 154 for j, header := range test.headers { |
123 hdr, err := tr.Next() | 155 hdr, err := tr.Next() |
124 if err != nil || hdr == nil { | 156 if err != nil || hdr == nil { |
125 t.Errorf("test %d, entry %d: Didn't get entry: % v", i, j, err) | 157 t.Errorf("test %d, entry %d: Didn't get entry: % v", i, j, err) |
126 f.Close() | 158 f.Close() |
127 continue testLoop | 159 continue testLoop |
128 } | 160 } |
129 if *hdr != *header { | 161 if *hdr != *header { |
130 t.Errorf("test %d, entry %d: Incorrect header:\n have %+v\nwant %+v", | 162 t.Errorf("test %d, entry %d: Incorrect header:\n have %+v\nwant %+v", |
131 i, j, *hdr, *header) | 163 i, j, *hdr, *header) |
132 } | 164 } |
133 } | 165 } |
134 hdr, err := tr.Next() | 166 hdr, err := tr.Next() |
135 if err == io.EOF { | 167 if err == io.EOF { |
136 » » » break | 168 » » » continue |
dfc
2012/10/16 00:54:39
continue testLoop
shanemhansen
2012/10/16 02:14:26
Done. Am I right in thinking the original statemen
| |
137 } | 169 } |
138 if hdr != nil || err != nil { | 170 if hdr != nil || err != nil { |
139 t.Errorf("test %d: Unexpected entry or error: hdr=%v err =%v", i, hdr, err) | 171 t.Errorf("test %d: Unexpected entry or error: hdr=%v err =%v", i, hdr, err) |
140 } | 172 } |
141 f.Close() | 173 f.Close() |
142 } | 174 } |
143 } | 175 } |
144 | 176 |
145 func TestPartialRead(t *testing.T) { | 177 func TestPartialRead(t *testing.T) { |
146 f, err := os.Open("testdata/gnu.tar") | 178 f, err := os.Open("testdata/gnu.tar") |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
253 } | 285 } |
254 if err != nil { | 286 if err != nil { |
255 t.Fatalf("Unexpected error: %v", err) | 287 t.Fatalf("Unexpected error: %v", err) |
256 } | 288 } |
257 } | 289 } |
258 | 290 |
259 if nread != len(test.headers) { | 291 if nread != len(test.headers) { |
260 t.Errorf("Didn't process all files\nexpected: %d\nprocessed %d\n ", len(test.headers), nread) | 292 t.Errorf("Didn't process all files\nexpected: %d\nprocessed %d\n ", len(test.headers), nread) |
261 } | 293 } |
262 } | 294 } |
OLD | NEW |