You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
359 lines
10 KiB
359 lines
10 KiB
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 ++ |
|
}) |
|
}) |
|
})
|
|
|