| var tap = require("tap") |
| , tar = require("../tar.js") |
| , fs = require("fs") |
| , path = require("path") |
| , file = path.resolve(__dirname, "fixtures/c.tar") |
| , index = 0 |
| |
| , expect = |
| [ [ 'entry', |
| { path: 'c.txt', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 513, |
| mtime: new Date('Wed, 26 Oct 2011 01:10:58 GMT'), |
| cksum: 5422, |
| type: '0', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '' }, |
| undefined ], |
| [ 'entry', |
| { path: 'cc.txt', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 513, |
| mtime: new Date('Wed, 26 Oct 2011 01:11:02 GMT'), |
| cksum: 5525, |
| type: '0', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '' }, |
| undefined ], |
| [ 'entry', |
| { path: 'r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 100, |
| mtime: new Date('Thu, 27 Oct 2011 03:43:23 GMT'), |
| cksum: 18124, |
| type: '0', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '' }, |
| undefined ], |
| [ 'entry', |
| { path: 'Ω.txt', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 2, |
| mtime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'), |
| cksum: 5695, |
| type: '0', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '' }, |
| undefined ], |
| [ 'extendedHeader', |
| { path: 'PaxHeader/Ω.txt', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 120, |
| mtime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'), |
| cksum: 6702, |
| type: 'x', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '' }, |
| { path: 'Ω.txt', |
| ctime: 1319737909, |
| atime: 1319739061, |
| dev: 234881026, |
| ino: 51693379, |
| nlink: 1 } ], |
| [ 'entry', |
| { path: 'Ω.txt', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 2, |
| mtime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'), |
| cksum: 5695, |
| type: '0', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '', |
| ctime: new Date('Thu, 27 Oct 2011 17:51:49 GMT'), |
| atime: new Date('Thu, 27 Oct 2011 18:11:01 GMT'), |
| dev: 234881026, |
| ino: 51693379, |
| nlink: 1 }, |
| undefined ], |
| [ 'extendedHeader', |
| { path: 'PaxHeader/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 353, |
| mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), |
| cksum: 14488, |
| type: 'x', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '' }, |
| { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', |
| ctime: 1319686868, |
| atime: 1319741254, |
| 'LIBARCHIVE.creationtime': '1319686852', |
| dev: 234881026, |
| ino: 51681874, |
| nlink: 1 } ], |
| [ 'entry', |
| { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 200, |
| mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), |
| cksum: 14570, |
| type: '0', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '', |
| ctime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), |
| atime: new Date('Thu, 27 Oct 2011 18:47:34 GMT'), |
| 'LIBARCHIVE.creationtime': '1319686852', |
| dev: 234881026, |
| ino: 51681874, |
| nlink: 1 }, |
| undefined ], |
| [ 'longPath', |
| { path: '././@LongLink', |
| mode: 0, |
| uid: 0, |
| gid: 0, |
| size: 201, |
| mtime: new Date('Thu, 01 Jan 1970 00:00:00 GMT'), |
| cksum: 4976, |
| type: 'L', |
| linkpath: '', |
| ustar: false }, |
| '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' ], |
| [ 'entry', |
| { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', |
| mode: 420, |
| uid: 1000, |
| gid: 1000, |
| size: 201, |
| mtime: new Date('Thu, 27 Oct 2011 22:21:50 GMT'), |
| cksum: 14086, |
| type: '0', |
| linkpath: '', |
| ustar: false }, |
| undefined ], |
| [ 'longLinkpath', |
| { path: '././@LongLink', |
| mode: 0, |
| uid: 0, |
| gid: 0, |
| size: 201, |
| mtime: new Date('Thu, 01 Jan 1970 00:00:00 GMT'), |
| cksum: 4975, |
| type: 'K', |
| linkpath: '', |
| ustar: false }, |
| '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' ], |
| [ 'longPath', |
| { path: '././@LongLink', |
| mode: 0, |
| uid: 0, |
| gid: 0, |
| size: 201, |
| mtime: new Date('Thu, 01 Jan 1970 00:00:00 GMT'), |
| cksum: 4976, |
| type: 'L', |
| linkpath: '', |
| ustar: false }, |
| '200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL' ], |
| [ 'entry', |
| { path: '200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL', |
| mode: 511, |
| uid: 1000, |
| gid: 1000, |
| size: 0, |
| mtime: new Date('Fri, 28 Oct 2011 23:05:17 GMT'), |
| cksum: 21603, |
| type: '2', |
| linkpath: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', |
| ustar: false }, |
| undefined ], |
| [ 'extendedHeader', |
| { path: 'PaxHeader/200-hard', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 143, |
| mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), |
| cksum: 6533, |
| type: 'x', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '' }, |
| { ctime: 1320617144, |
| atime: 1320617232, |
| 'LIBARCHIVE.creationtime': '1319686852', |
| dev: 234881026, |
| ino: 51681874, |
| nlink: 2 } ], |
| [ 'entry', |
| { path: '200-hard', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 200, |
| mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), |
| cksum: 5526, |
| type: '0', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '', |
| ctime: new Date('Sun, 06 Nov 2011 22:05:44 GMT'), |
| atime: new Date('Sun, 06 Nov 2011 22:07:12 GMT'), |
| 'LIBARCHIVE.creationtime': '1319686852', |
| dev: 234881026, |
| ino: 51681874, |
| nlink: 2 }, |
| undefined ], |
| [ 'extendedHeader', |
| { path: 'PaxHeader/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 353, |
| mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), |
| cksum: 14488, |
| type: 'x', |
| linkpath: '', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '' }, |
| { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', |
| ctime: 1320617144, |
| atime: 1320617406, |
| 'LIBARCHIVE.creationtime': '1319686852', |
| dev: 234881026, |
| ino: 51681874, |
| nlink: 2 } ], |
| [ 'entry', |
| { path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', |
| mode: 420, |
| uid: 24561, |
| gid: 20, |
| size: 0, |
| mtime: new Date('Thu, 27 Oct 2011 03:41:08 GMT'), |
| cksum: 15173, |
| type: '1', |
| linkpath: '200-hard', |
| ustar: 'ustar\0', |
| ustarver: '00', |
| uname: 'isaacs', |
| gname: 'staff', |
| devmaj: 0, |
| devmin: 0, |
| fill: '', |
| ctime: new Date('Sun, 06 Nov 2011 22:05:44 GMT'), |
| atime: new Date('Sun, 06 Nov 2011 22:10:06 GMT'), |
| 'LIBARCHIVE.creationtime': '1319686852', |
| dev: 234881026, |
| ino: 51681874, |
| nlink: 2 }, |
| undefined ] ] |
| |
| |
| tap.test("parser test", function (t) { |
| var parser = tar.Parse() |
| |
| parser.on("end", function () { |
| t.equal(index, expect.length, "saw all expected events") |
| t.end() |
| }) |
| |
| fs.createReadStream(file) |
| .pipe(parser) |
| .on("*", function (ev, entry) { |
| var wanted = expect[index] |
| if (!wanted) { |
| return t.fail("Unexpected event: " + ev) |
| } |
| var result = [ev, entry.props] |
| entry.on("end", function () { |
| result.push(entry.fields || entry.body) |
| |
| t.equal(ev, wanted[0], index + " event type") |
| t.equivalent(entry.props, wanted[1], wanted[1].path + " entry properties") |
| if (wanted[2]) { |
| t.equivalent(result[2], wanted[2], "metadata values") |
| } |
| index ++ |
| }) |
| }) |
| }) |