mirror of
https://github.com/electron/node-gyp.git
synced 2025-09-18 06:43:39 +02:00
Commit node_modules.
For @billywhizz :) And cause it's just an all around good idea for command-line apps.
This commit is contained in:
parent
d39620999f
commit
24bde139e1
255 changed files with 20261 additions and 0 deletions
358
node_modules/tar/test/extract.js
generated
vendored
Normal file
358
node_modules/tar/test/extract.js
generated
vendored
Normal file
|
@ -0,0 +1,358 @@
|
|||
var tap = require("tap")
|
||||
, tar = require("../tar.js")
|
||||
, fs = require("fs")
|
||||
, path = require("path")
|
||||
, file = path.resolve(__dirname, "fixtures/c.tar")
|
||||
, target = path.resolve(__dirname, "tmp/extract-test")
|
||||
, index = 0
|
||||
, fstream = require("fstream")
|
||||
|
||||
, ee = 0
|
||||
, expectEntries =
|
||||
[ { path: 'c.txt',
|
||||
mode: '644',
|
||||
type: '0',
|
||||
depth: undefined,
|
||||
size: 513,
|
||||
linkpath: '',
|
||||
nlink: undefined,
|
||||
dev: undefined,
|
||||
ino: undefined },
|
||||
{ path: 'cc.txt',
|
||||
mode: '644',
|
||||
type: '0',
|
||||
depth: undefined,
|
||||
size: 513,
|
||||
linkpath: '',
|
||||
nlink: undefined,
|
||||
dev: undefined,
|
||||
ino: undefined },
|
||||
{ path: 'r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
|
||||
mode: '644',
|
||||
type: '0',
|
||||
depth: undefined,
|
||||
size: 100,
|
||||
linkpath: '',
|
||||
nlink: undefined,
|
||||
dev: undefined,
|
||||
ino: undefined },
|
||||
{ path: 'Ω.txt',
|
||||
mode: '644',
|
||||
type: '0',
|
||||
depth: undefined,
|
||||
size: 2,
|
||||
linkpath: '',
|
||||
nlink: undefined,
|
||||
dev: undefined,
|
||||
ino: undefined },
|
||||
{ path: 'Ω.txt',
|
||||
mode: '644',
|
||||
type: '0',
|
||||
depth: undefined,
|
||||
size: 2,
|
||||
linkpath: '',
|
||||
nlink: 1,
|
||||
dev: 234881026,
|
||||
ino: 51693379 },
|
||||
{ path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
|
||||
mode: '644',
|
||||
type: '0',
|
||||
depth: undefined,
|
||||
size: 200,
|
||||
linkpath: '',
|
||||
nlink: 1,
|
||||
dev: 234881026,
|
||||
ino: 51681874 },
|
||||
{ path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
|
||||
mode: '644',
|
||||
type: '0',
|
||||
depth: undefined,
|
||||
size: 201,
|
||||
linkpath: '',
|
||||
nlink: undefined,
|
||||
dev: undefined,
|
||||
ino: undefined },
|
||||
{ path: '200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL',
|
||||
mode: '777',
|
||||
type: '2',
|
||||
depth: undefined,
|
||||
size: 0,
|
||||
linkpath: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
|
||||
nlink: undefined,
|
||||
dev: undefined,
|
||||
ino: undefined },
|
||||
{ path: '200-hard',
|
||||
mode: '644',
|
||||
type: '0',
|
||||
depth: undefined,
|
||||
size: 200,
|
||||
linkpath: '',
|
||||
nlink: 2,
|
||||
dev: 234881026,
|
||||
ino: 51681874 },
|
||||
{ path: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
|
||||
mode: '644',
|
||||
type: '1',
|
||||
depth: undefined,
|
||||
size: 0,
|
||||
linkpath: path.resolve(target, '200-hard'),
|
||||
nlink: 2,
|
||||
dev: 234881026,
|
||||
ino: 51681874 } ]
|
||||
|
||||
, ef = 0
|
||||
, expectFiles =
|
||||
[ { path: '',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 0,
|
||||
linkpath: undefined },
|
||||
{ path: '/200-hard',
|
||||
mode: '100644',
|
||||
type: 'File',
|
||||
depth: 1,
|
||||
size: 200,
|
||||
linkpath: undefined,
|
||||
nlink: 2 },
|
||||
{ path: '/200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
|
||||
mode: '100644',
|
||||
type: 'Link',
|
||||
depth: 1,
|
||||
size: 200,
|
||||
linkpath: path.join(target, '200-hard'),
|
||||
nlink: 2 },
|
||||
{ path: '/200LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL',
|
||||
mode: '120777',
|
||||
type: 'SymbolicLink',
|
||||
depth: 1,
|
||||
size: 200,
|
||||
linkpath: '200ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
|
||||
nlink: 1 },
|
||||
{ path: '/c.txt',
|
||||
mode: '100644',
|
||||
type: 'File',
|
||||
depth: 1,
|
||||
size: 513,
|
||||
linkpath: undefined,
|
||||
nlink: 1 },
|
||||
{ path: '/cc.txt',
|
||||
mode: '100644',
|
||||
type: 'File',
|
||||
depth: 1,
|
||||
size: 513,
|
||||
linkpath: undefined,
|
||||
nlink: 1 },
|
||||
{ path: '/r',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 1,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 2,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 3,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 4,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 5,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 6,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 7,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 8,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 9,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 10,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 11,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 12,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 13,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 14,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 15,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 16,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 17,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 18,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 19,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 20,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 21,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 22,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h',
|
||||
mode: '40755',
|
||||
type: 'Directory',
|
||||
depth: 23,
|
||||
linkpath: undefined },
|
||||
{ path: '/r/e/a/l/l/y/-/d/e/e/p/-/f/o/l/d/e/r/-/p/a/t/h/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
|
||||
mode: '100644',
|
||||
type: 'File',
|
||||
depth: 24,
|
||||
size: 100,
|
||||
linkpath: undefined,
|
||||
nlink: 1 },
|
||||
{ path: '/Ω.txt',
|
||||
mode: '100644',
|
||||
type: 'File',
|
||||
depth: 1,
|
||||
size: 2,
|
||||
linkpath: undefined,
|
||||
nlink: 1 } ]
|
||||
|
||||
|
||||
|
||||
// The extract class basically just pipes the input
|
||||
// to a Reader, and then to a fstream.DirWriter
|
||||
|
||||
// So, this is as much a test of fstream.Reader and fstream.Writer
|
||||
// as it is of tar.Extract, but it sort of makes sense.
|
||||
|
||||
tap.test("extract test", function (t) {
|
||||
var extract = tar.Extract(target)
|
||||
var inp = fs.createReadStream(file)
|
||||
|
||||
// give it a weird buffer size to try to break in odd places
|
||||
inp.bufferSize = 1234
|
||||
|
||||
inp.pipe(extract)
|
||||
|
||||
extract.on("end", function () {
|
||||
t.equal(ee, expectEntries.length, "should see "+ee+" entries")
|
||||
|
||||
// should get no more entries after end
|
||||
extract.removeAllListeners("entry")
|
||||
extract.on("entry", function (e) {
|
||||
t.fail("Should not get entries after end!")
|
||||
})
|
||||
|
||||
next()
|
||||
})
|
||||
|
||||
extract.on("entry", function (entry) {
|
||||
var found =
|
||||
{ path: entry.path
|
||||
, mode: entry.props.mode.toString(8)
|
||||
, type: entry.props.type
|
||||
, depth: entry.props.depth
|
||||
, size: entry.props.size
|
||||
, linkpath: entry.props.linkpath
|
||||
, nlink: entry.props.nlink
|
||||
, dev: entry.props.dev
|
||||
, ino: entry.props.ino
|
||||
}
|
||||
|
||||
var wanted = expectEntries[ee ++]
|
||||
|
||||
t.equivalent(found, wanted, "tar entry " + ee + " " + wanted.path)
|
||||
})
|
||||
|
||||
function next () {
|
||||
var r = fstream.Reader({ path: target
|
||||
, type: "Directory"
|
||||
// this is just to encourage consistency
|
||||
, sort: "alpha" })
|
||||
|
||||
r.on("ready", function () {
|
||||
foundEntry(r)
|
||||
})
|
||||
|
||||
r.on("end", finish)
|
||||
|
||||
function foundEntry (entry) {
|
||||
var p = entry.path.substr(target.length)
|
||||
var found =
|
||||
{ path: p
|
||||
, mode: entry.props.mode.toString(8)
|
||||
, type: entry.props.type
|
||||
, depth: entry.props.depth
|
||||
, size: entry.props.size
|
||||
, linkpath: entry.props.linkpath
|
||||
, nlink: entry.props.nlink
|
||||
}
|
||||
|
||||
var wanted = expectFiles[ef ++]
|
||||
|
||||
t.has(found, wanted, "unpacked file " + ef + " " + wanted.path)
|
||||
|
||||
entry.on("entry", foundEntry)
|
||||
}
|
||||
|
||||
function finish () {
|
||||
t.equal(ef, expectFiles.length, "should have "+ef+" items")
|
||||
t.end()
|
||||
}
|
||||
}
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue