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.
98 lines
2.8 KiB
98 lines
2.8 KiB
var test = require('tape') |
|
var runGyp = require('../gypbuild') |
|
var util = require('../util') |
|
// TODO use noop-logger when it supports verbose |
|
|
|
test('gyp is invoked with correct arguments, release mode', function (t) { |
|
t.plan(6) |
|
var opts = { |
|
pkg: {binary: { |
|
module_name: 'module_name', |
|
module_path: 'module_path' |
|
}}, |
|
arch: 'fooarch', |
|
gyp: { |
|
parseArgv: function (args) { |
|
t.deepEqual(args, ['node', 'index.js', 'rebuild', '--target=x.y.z', '--target_arch=fooarch'], 'correct arguments') |
|
}, |
|
commands: { |
|
rebuild: function (args, cb) { |
|
t.deepEqual(args, ['--rebuildarg'], 'correct args') |
|
opts.gyp.todo = [ |
|
{name: 'clean', args: ['--cleanarg']}, |
|
{name: 'configure', args: ['--configurearg']}, |
|
{name: 'build', args: ['--buildarg']} |
|
] |
|
process.nextTick(cb) |
|
}, |
|
clean: function (args, cb) { |
|
t.deepEqual(args, ['--cleanarg'], 'correct args') |
|
process.nextTick(cb) |
|
}, |
|
configure: function (args, cb) { |
|
t.deepEqual(args, ['--configurearg', '-Dmodule_name=module_name', '-Dmodule_path=module_path'], 'correct args') |
|
process.nextTick(cb) |
|
}, |
|
build: function (args, cb) { |
|
t.deepEqual(args, ['--buildarg'], 'correct args') |
|
process.nextTick(cb) |
|
} |
|
}, |
|
todo: [{ name: 'rebuild', args: [ '--rebuildarg' ] }] |
|
}, |
|
log: { |
|
http: function () { }, |
|
info: function () { }, |
|
verbose: function () { } |
|
} |
|
} |
|
runGyp(opts, 'x.y.z', function (err) { |
|
t.error(err, 'no error') |
|
}) |
|
}) |
|
|
|
test('gyp is invoked with correct arguments, debug mode', function (t) { |
|
t.plan(2) |
|
var opts = { |
|
arch: 'fooarch', |
|
debug: true, |
|
gyp: { |
|
parseArgv: function (args) { |
|
t.deepEqual(args, ['node', 'index.js', 'rebuild', '--target=x.y.z', '--target_arch=fooarch', '--debug'], 'correct arguments') |
|
}, |
|
commands: { |
|
rebuild: function (args, cb) { |
|
t.deepEqual(args, ['--rebuildarg'], 'correct args') |
|
} |
|
}, |
|
todo: [{ name: 'rebuild', args: ['--rebuildarg'] }] |
|
}, |
|
log: { |
|
http: function () { }, |
|
info: function () { }, |
|
verbose: function () { } |
|
} |
|
} |
|
runGyp(opts, 'x.y.z') |
|
}) |
|
|
|
test('--preinstall script is spawned, calls back with error if fails', function (t) { |
|
t.plan(2) |
|
var _exec = util.exec |
|
util.exec = function (cmd, cb) { |
|
t.equal(cmd, 'somescript.sh', 'correct script') |
|
process.nextTick(cb.bind(null, new Error('some error'))) |
|
} |
|
var opts = { |
|
preinstall: 'somescript.sh', |
|
log: { |
|
http: function () { }, |
|
info: function () { }, |
|
verbose: function () { } |
|
} |
|
} |
|
runGyp(opts, 'x.y.z', function (err) { |
|
t.equal(err.message, 'some error', 'correct error') |
|
util.exec = _exec |
|
}) |
|
})
|
|
|