mirror of https://github.com/lukechilds/node.git
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.
56 lines
1.2 KiB
56 lines
1.2 KiB
var test = require("tap").test
|
|
var rimraf = require("rimraf")
|
|
var common = require("../common-tap.js")
|
|
var path = require("path")
|
|
var fs = require("fs")
|
|
|
|
var pkg = path.resolve(__dirname, "optional-metadep-rollback-collision")
|
|
var nm = path.resolve(pkg, "node_modules")
|
|
var cache = path.resolve(pkg, "cache")
|
|
var pidfile = path.resolve(pkg, "child.pid")
|
|
|
|
test("setup", function (t) {
|
|
cleanup()
|
|
t.end()
|
|
})
|
|
|
|
test("go go test racer", function (t) {
|
|
common.npm(["install", "--prefix=" + pkg, "--fetch-retries=0", "--cache=" + cache], {
|
|
cwd: pkg,
|
|
env: {
|
|
PATH: process.env.PATH,
|
|
Path: process.env.Path,
|
|
"npm_config_loglevel": "silent"
|
|
},
|
|
stdio: [ 0, "pipe", 2 ]
|
|
}, function (er, code, sout) {
|
|
if (er) throw er
|
|
t.notOk(code, "npm install exited with code 0")
|
|
t.equal(sout, "ok\nok\n")
|
|
t.notOk(/not ok/.test(sout), "should not contain the string 'not ok'")
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
test("verify results", function (t) {
|
|
t.throws(function () {
|
|
fs.statSync(nm)
|
|
})
|
|
t.end()
|
|
})
|
|
|
|
test("cleanup", function (t) {
|
|
cleanup()
|
|
t.end()
|
|
})
|
|
|
|
function cleanup () {
|
|
try {
|
|
var pid = +fs.readFileSync(pidfile)
|
|
process.kill(pid, "SIGKILL")
|
|
} catch (er) {}
|
|
|
|
rimraf.sync(cache)
|
|
rimraf.sync(nm)
|
|
rimraf.sync(pidfile)
|
|
}
|
|
|