aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/node-gyp/test/test-addon.js
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2019-07-24 23:00:03 -0700
committerMichaƫl Zasso <targos@protonmail.com>2019-08-06 09:05:32 +0200
commitd7d321b071789f08c65dbb11a0e4b3b6a299af44 (patch)
tree1015b8c5da3632fc986b56051a4853ac946c56f4 /deps/npm/node_modules/node-gyp/test/test-addon.js
parent37d27486fce50bd82b6b5095af880d435ed308f8 (diff)
downloadandroid-node-v8-d7d321b071789f08c65dbb11a0e4b3b6a299af44.tar.gz
android-node-v8-d7d321b071789f08c65dbb11a0e4b3b6a299af44.tar.bz2
android-node-v8-d7d321b071789f08c65dbb11a0e4b3b6a299af44.zip
deps: upgrade npm to 6.10.2
PR-URL: https://github.com/nodejs/node/pull/28853 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Diffstat (limited to 'deps/npm/node_modules/node-gyp/test/test-addon.js')
-rw-r--r--deps/npm/node_modules/node-gyp/test/test-addon.js85
1 files changed, 61 insertions, 24 deletions
diff --git a/deps/npm/node_modules/node-gyp/test/test-addon.js b/deps/npm/node_modules/node-gyp/test/test-addon.js
index 89350effc4..f97215c0a2 100644
--- a/deps/npm/node_modules/node-gyp/test/test-addon.js
+++ b/deps/npm/node_modules/node-gyp/test/test-addon.js
@@ -1,29 +1,33 @@
'use strict'
-var test = require('tape')
-var path = require('path')
-var fs = require('graceful-fs')
-var child_process = require('child_process')
-var addonPath = path.resolve(__dirname, 'node_modules', 'hello_world')
-var nodeGyp = path.resolve(__dirname, '..', 'bin', 'node-gyp.js')
-var execFileSync = child_process.execFileSync || require('./process-exec-sync')
-var execFile = child_process.execFile
-
-function runHello() {
+const test = require('tap').test
+const path = require('path')
+const fs = require('graceful-fs')
+const childProcess = require('child_process')
+const os = require('os')
+const addonPath = path.resolve(__dirname, 'node_modules', 'hello_world')
+const nodeGyp = path.resolve(__dirname, '..', 'bin', 'node-gyp.js')
+const execFileSync = childProcess.execFileSync || require('./process-exec-sync')
+const execFile = childProcess.execFile
+
+function runHello (hostProcess) {
+ if (!hostProcess) {
+ hostProcess = process.execPath
+ }
var testCode = "console.log(require('hello_world').hello())"
- return execFileSync(process.execPath, ['-e', testCode], { cwd: __dirname }).toString()
+ return execFileSync(hostProcess, [ '-e', testCode ], { cwd: __dirname }).toString()
}
-function getEncoding() {
- var code = 'import locale;print locale.getdefaultlocale()[1]'
- return execFileSync('python', ['-c', code]).toString().trim()
+function getEncoding () {
+ var code = 'import locale;print(locale.getdefaultlocale()[1])'
+ return execFileSync('python', [ '-c', code ]).toString().trim()
}
-function checkCharmapValid() {
+function checkCharmapValid () {
var data
try {
- data = execFileSync('python', ['fixtures/test-charmap.py'],
- { cwd: __dirname })
+ data = execFileSync('python', [ 'fixtures/test-charmap.py' ],
+ { cwd: __dirname })
} catch (err) {
return false
}
@@ -35,10 +39,10 @@ test('build simple addon', function (t) {
t.plan(3)
// Set the loglevel otherwise the output disappears when run via 'npm test'
- var cmd = [nodeGyp, 'rebuild', '-C', addonPath, '--loglevel=verbose']
+ var cmd = [ nodeGyp, 'rebuild', '-C', addonPath, '--loglevel=verbose' ]
var proc = execFile(process.execPath, cmd, function (err, stdout, stderr) {
var logLines = stderr.toString().trim().split(/\r?\n/)
- var lastLine = logLines[logLines.length-1]
+ var lastLine = logLines[logLines.length - 1]
t.strictEqual(err, null)
t.strictEqual(lastLine, 'gyp info ok', 'should end in ok')
t.strictEqual(runHello().trim(), 'world')
@@ -68,14 +72,15 @@ test('build simple addon in path with non-ascii characters', function (t) {
t.plan(3)
- var data, configPath = path.join(addonPath, 'build', 'config.gypi')
+ var data
+ var configPath = path.join(addonPath, 'build', 'config.gypi')
try {
data = fs.readFileSync(configPath, 'utf8')
} catch (err) {
t.error(err)
return
}
- var config = JSON.parse(data.replace(/\#.+\n/, ''))
+ var config = JSON.parse(data.replace(/#.+\n/, ''))
var nodeDir = config.variables.nodedir
var testNodeDir = path.join(addonPath, testDirName)
// Create symbol link to path with non-ascii characters
@@ -93,8 +98,14 @@ test('build simple addon in path with non-ascii characters', function (t) {
}
}
- var cmd = [nodeGyp, 'rebuild', '-C', addonPath,
- '--loglevel=verbose', '-nodedir=' + testNodeDir]
+ var cmd = [
+ nodeGyp,
+ 'rebuild',
+ '-C',
+ addonPath,
+ '--loglevel=verbose',
+ '-nodedir=' + testNodeDir
+ ]
var proc = execFile(process.execPath, cmd, function (err, stdout, stderr) {
try {
fs.unlink(testNodeDir)
@@ -103,7 +114,7 @@ test('build simple addon in path with non-ascii characters', function (t) {
}
var logLines = stderr.toString().trim().split(/\r?\n/)
- var lastLine = logLines[logLines.length-1]
+ var lastLine = logLines[logLines.length - 1]
t.strictEqual(err, null)
t.strictEqual(lastLine, 'gyp info ok', 'should end in ok')
t.strictEqual(runHello().trim(), 'world')
@@ -111,3 +122,29 @@ test('build simple addon in path with non-ascii characters', function (t) {
proc.stdout.setEncoding('utf-8')
proc.stderr.setEncoding('utf-8')
})
+
+test('addon works with renamed host executable', function (t) {
+ // No `fs.copyFileSync` before node8.
+ if (process.version.substr(1).split('.')[0] < 8) {
+ t.skip('skipping test for old node version')
+ t.end()
+ return
+ }
+
+ t.plan(3)
+
+ var notNodePath = path.join(os.tmpdir(), 'notnode' + path.extname(process.execPath))
+ fs.copyFileSync(process.execPath, notNodePath)
+
+ var cmd = [ nodeGyp, 'rebuild', '-C', addonPath, '--loglevel=verbose' ]
+ var proc = execFile(process.execPath, cmd, function (err, stdout, stderr) {
+ var logLines = stderr.toString().trim().split(/\r?\n/)
+ var lastLine = logLines[logLines.length - 1]
+ t.strictEqual(err, null)
+ t.strictEqual(lastLine, 'gyp info ok', 'should end in ok')
+ t.strictEqual(runHello(notNodePath).trim(), 'world')
+ fs.unlinkSync(notNodePath)
+ })
+ proc.stdout.setEncoding('utf-8')
+ proc.stderr.setEncoding('utf-8')
+})