1 var fs = require('graceful-fs')
2 var path = require('path')
3 var spawn = require('child_process').spawn
5 var mkdirp = require('mkdirp')
6 var osenv = require('osenv')
7 var rimraf = require('rimraf')
8 var test = require('tap').test
10 var node = process.execPath
11 var npm = require.resolve('../../bin/npm-cli.js')
13 var pkg = path.resolve(__dirname, 'lifecycle-signal')
16 name: 'lifecycle-signal',
19 preinstall: 'node -e "process.kill(process.pid,\'SIGSEGV\')"'
23 test('setup', function (t) {
27 path.join(pkg, 'package.json'),
28 JSON.stringify(json, null, 2)
35 test('lifecycle signal abort', function (t) {
36 // windows does not use lifecycle signals, abort
37 if (process.platform === 'win32' || process.env.TRAVIS) return t.end()
39 var child = spawn(node, [npm, 'install'], {
42 child.on('close', function (code, signal) {
44 t.equal(signal, 'SIGSEGV')
49 test('cleanup', function (t) {
55 process.chdir(osenv.tmpdir())