diff options
Diffstat (limited to 'deps/npm/test/common-tap.js')
-rw-r--r-- | deps/npm/test/common-tap.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/deps/npm/test/common-tap.js b/deps/npm/test/common-tap.js index a13a0a7cde..d6d09ed9bc 100644 --- a/deps/npm/test/common-tap.js +++ b/deps/npm/test/common-tap.js @@ -1,2 +1,32 @@ +var spawn = require("child_process").spawn + var port = exports.port = 1337 exports.registry = "http://localhost:" + port +process.env.npm_config_loglevel = "error" + +var bin = exports.bin = require.resolve("../bin/npm-cli.js") +var once = require("once") +exports.npm = function (cmd, opts, cb) { + cb = once(cb) + cmd = [bin].concat(cmd) + opts = opts || {} + + var stdout = "" + , stderr = "" + , node = process.execPath + , child = spawn(node, cmd, opts) + + if (child.stderr) child.stderr.on("data", function (chunk) { + stderr += chunk + }) + + if (child.stdout) child.stdout.on("data", function (chunk) { + stdout += chunk + }) + + child.on("error", cb) + + child.on("close", function (code, signal) { + cb(null, code, stdout, stderr) + }) +} |