aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Bevenius <daniel.bevenius@gmail.com>2017-03-01 08:16:48 +0100
committerDaniel Bevenius <daniel.bevenius@gmail.com>2017-03-04 20:16:52 +0100
commit1402fef098309bf7fd902d0be86cd8a1a3e07b86 (patch)
tree189a1119a63898f9ea38d3fd6992f22d66f00b6e
parent93525287791c8b16012a146623982d31e1f18775 (diff)
downloadandroid-node-v8-1402fef098309bf7fd902d0be86cd8a1a3e07b86.tar.gz
android-node-v8-1402fef098309bf7fd902d0be86cd8a1a3e07b86.tar.bz2
android-node-v8-1402fef098309bf7fd902d0be86cd8a1a3e07b86.zip
test: make tests pass when configured without-ssl
Currently when node is build --without-ssl and the test are run, there are a number of failing test due to tests expecting crypto support to be available. This commit fixes fixes the failure and instead skips the tests that expect crypto to be available. PR-URL: https://github.com/nodejs/node/pull/11631 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
-rw-r--r--test/addons/openssl-binding/binding.gyp8
-rw-r--r--test/addons/openssl-binding/test.js4
-rw-r--r--test/common.js7
-rw-r--r--test/fixtures/tls-connect.js16
-rw-r--r--test/inspector/test-inspector.js3
-rw-r--r--test/inspector/test-not-blocked-on-idle.js3
-rw-r--r--test/parallel/test-cluster-inspector-debug-port.js1
-rw-r--r--test/parallel/test-tls-addca.js2
-rw-r--r--test/parallel/test-tls-ca-concat.js2
-rw-r--r--test/parallel/test-tls-cert-chains-concat.js2
-rw-r--r--test/parallel/test-tls-cert-chains-in-ca.js2
-rw-r--r--test/parallel/test-tls-connect-secure-context.js2
-rw-r--r--test/parallel/test-tls-peer-certificate.js2
-rw-r--r--test/parallel/test-tls-socket-default-options.js5
-rw-r--r--test/sequential/test-debugger-debug-brk.js1
-rw-r--r--test/testpy/__init__.py14
-rwxr-xr-xtools/test.py21
17 files changed, 67 insertions, 28 deletions
diff --git a/test/addons/openssl-binding/binding.gyp b/test/addons/openssl-binding/binding.gyp
index 672f84bb86..bafde41348 100644
--- a/test/addons/openssl-binding/binding.gyp
+++ b/test/addons/openssl-binding/binding.gyp
@@ -2,8 +2,12 @@
'targets': [
{
'target_name': 'binding',
- 'sources': ['binding.cc'],
- 'include_dirs': ['../../../deps/openssl/openssl/include'],
+ 'conditions': [
+ ['node_use_openssl=="true"', {
+ 'sources': ['binding.cc'],
+ 'include_dirs': ['../../../deps/openssl/openssl/include'],
+ }]
+ ]
},
]
}
diff --git a/test/addons/openssl-binding/test.js b/test/addons/openssl-binding/test.js
index a146ffe5c6..452f59f752 100644
--- a/test/addons/openssl-binding/test.js
+++ b/test/addons/openssl-binding/test.js
@@ -1,6 +1,10 @@
'use strict';
const common = require('../../common');
+if (!common.hasCrypto) {
+ common.skip('missing crypto');
+ process.exit(0);
+}
const assert = require('assert');
const binding = require(`./build/${common.buildType}/binding`);
const bytes = new Uint8Array(1024);
diff --git a/test/common.js b/test/common.js
index 6c7ea387e3..9f73e2e882 100644
--- a/test/common.js
+++ b/test/common.js
@@ -638,3 +638,10 @@ exports.expectsError = function expectsError({code, type, message}) {
return true;
};
};
+
+exports.skipIfInspectorDisabled = function skipIfInspectorDisabled() {
+ if (!exports.hasCrypto) {
+ exports.skip('missing ssl support so inspector is disabled');
+ process.exit(0);
+ }
+};
diff --git a/test/fixtures/tls-connect.js b/test/fixtures/tls-connect.js
index 72f83736bf..a434a0316d 100644
--- a/test/fixtures/tls-connect.js
+++ b/test/fixtures/tls-connect.js
@@ -6,19 +6,15 @@
const common = require('../common');
const fs = require('fs');
const join = require('path').join;
+// Check if Node was compiled --without-ssl and if so exit early
+// as the require of tls will otherwise throw an Error.
+if (!common.hasCrypto) {
+ common.skip('missing crypto');
+ process.exit(0);
+}
const tls = require('tls');
const util = require('util');
-module.exports = exports = checkCrypto;
-
-function checkCrypto() {
- if (!common.hasCrypto) {
- common.skip('missing crypto');
- process.exit(0);
- }
- return exports;
-}
-
exports.assert = require('assert');
exports.debug = util.debuglog('test');
exports.tls = tls;
diff --git a/test/inspector/test-inspector.js b/test/inspector/test-inspector.js
index a1c69cb6fb..5cad934e7a 100644
--- a/test/inspector/test-inspector.js
+++ b/test/inspector/test-inspector.js
@@ -1,5 +1,6 @@
'use strict';
-require('../common');
+const common = require('../common');
+common.skipIfInspectorDisabled();
const assert = require('assert');
const helper = require('./inspector-helper.js');
diff --git a/test/inspector/test-not-blocked-on-idle.js b/test/inspector/test-not-blocked-on-idle.js
index 6d32888b44..a33e530a54 100644
--- a/test/inspector/test-not-blocked-on-idle.js
+++ b/test/inspector/test-not-blocked-on-idle.js
@@ -1,5 +1,6 @@
'use strict';
-require('../common');
+const common = require('../common');
+common.skipIfInspectorDisabled();
const helper = require('./inspector-helper.js');
function shouldShutDown(session) {
diff --git a/test/parallel/test-cluster-inspector-debug-port.js b/test/parallel/test-cluster-inspector-debug-port.js
index f2f8db9b5d..f0e0f58a86 100644
--- a/test/parallel/test-cluster-inspector-debug-port.js
+++ b/test/parallel/test-cluster-inspector-debug-port.js
@@ -1,6 +1,7 @@
'use strict';
// Flags: --inspect={PORT}
const common = require('../common');
+common.skipIfInspectorDisabled();
const assert = require('assert');
const cluster = require('cluster');
const debuggerPort = common.PORT;
diff --git a/test/parallel/test-tls-addca.js b/test/parallel/test-tls-addca.js
index 7a6f9a7751..f3f5e5b8de 100644
--- a/test/parallel/test-tls-addca.js
+++ b/test/parallel/test-tls-addca.js
@@ -8,7 +8,7 @@ const common = require('../common');
const join = require('path').join;
const {
assert, connect, keys, tls
-} = require(join(common.fixturesDir, 'tls-connect'))();
+} = require(join(common.fixturesDir, 'tls-connect'));
const contextWithoutCert = tls.createSecureContext({});
const contextWithCert = tls.createSecureContext({});
diff --git a/test/parallel/test-tls-ca-concat.js b/test/parallel/test-tls-ca-concat.js
index 65c837bed9..0c1908049b 100644
--- a/test/parallel/test-tls-ca-concat.js
+++ b/test/parallel/test-tls-ca-concat.js
@@ -7,7 +7,7 @@ const common = require('../common');
const join = require('path').join;
const {
assert, connect, keys
-} = require(join(common.fixturesDir, 'tls-connect'))();
+} = require(join(common.fixturesDir, 'tls-connect'));
connect({
client: {
diff --git a/test/parallel/test-tls-cert-chains-concat.js b/test/parallel/test-tls-cert-chains-concat.js
index d53edef898..a90ed67997 100644
--- a/test/parallel/test-tls-cert-chains-concat.js
+++ b/test/parallel/test-tls-cert-chains-concat.js
@@ -7,7 +7,7 @@ const common = require('../common');
const join = require('path').join;
const {
assert, connect, debug, keys
-} = require(join(common.fixturesDir, 'tls-connect'))();
+} = require(join(common.fixturesDir, 'tls-connect'));
// agent6-cert.pem includes cert for agent6 and ca3
connect({
diff --git a/test/parallel/test-tls-cert-chains-in-ca.js b/test/parallel/test-tls-cert-chains-in-ca.js
index 3b4e78919f..03fae36cb7 100644
--- a/test/parallel/test-tls-cert-chains-in-ca.js
+++ b/test/parallel/test-tls-cert-chains-in-ca.js
@@ -7,7 +7,7 @@ const common = require('../common');
const join = require('path').join;
const {
assert, connect, debug, keys
-} = require(join(common.fixturesDir, 'tls-connect'))();
+} = require(join(common.fixturesDir, 'tls-connect'));
// agent6-cert.pem includes cert for agent6 and ca3, split it apart and
diff --git a/test/parallel/test-tls-connect-secure-context.js b/test/parallel/test-tls-connect-secure-context.js
index d1552a6216..ef063c2ed3 100644
--- a/test/parallel/test-tls-connect-secure-context.js
+++ b/test/parallel/test-tls-connect-secure-context.js
@@ -6,7 +6,7 @@ const common = require('../common');
const join = require('path').join;
const {
assert, connect, keys, tls
-} = require(join(common.fixturesDir, 'tls-connect'))();
+} = require(join(common.fixturesDir, 'tls-connect'));
connect({
client: {
diff --git a/test/parallel/test-tls-peer-certificate.js b/test/parallel/test-tls-peer-certificate.js
index eb5be6dcb2..8c56e72af1 100644
--- a/test/parallel/test-tls-peer-certificate.js
+++ b/test/parallel/test-tls-peer-certificate.js
@@ -6,7 +6,7 @@ const common = require('../common');
const join = require('path').join;
const {
assert, connect, debug, keys
-} = require(join(common.fixturesDir, 'tls-connect'))();
+} = require(join(common.fixturesDir, 'tls-connect'));
connect({
client: {rejectUnauthorized: false},
diff --git a/test/parallel/test-tls-socket-default-options.js b/test/parallel/test-tls-socket-default-options.js
index 24b7a5d34e..edf16a6bff 100644
--- a/test/parallel/test-tls-socket-default-options.js
+++ b/test/parallel/test-tls-socket-default-options.js
@@ -9,11 +9,6 @@ const {
connect, keys, tls
} = require(join(common.fixturesDir, 'tls-connect'));
-if (!common.hasCrypto) {
- common.skip('missing crypto');
- return;
-}
-
test(undefined, (err) => {
assert.strictEqual(err.message, 'unable to verify the first certificate');
});
diff --git a/test/sequential/test-debugger-debug-brk.js b/test/sequential/test-debugger-debug-brk.js
index f04af4544f..f5a69b91d6 100644
--- a/test/sequential/test-debugger-debug-brk.js
+++ b/test/sequential/test-debugger-debug-brk.js
@@ -1,5 +1,6 @@
'use strict';
const common = require('../common');
+common.skipIfInspectorDisabled();
const assert = require('assert');
const spawn = require('child_process').spawn;
diff --git a/test/testpy/__init__.py b/test/testpy/__init__.py
index 367346f6e1..d7ec88992e 100644
--- a/test/testpy/__init__.py
+++ b/test/testpy/__init__.py
@@ -29,6 +29,7 @@ import test
import os
from os.path import join, dirname, exists
import re
+import ast
FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
@@ -64,7 +65,18 @@ class SimpleTestCase(test.TestCase):
# PORT should match the definition in test/common.js.
env = { 'PORT': int(os.getenv('NODE_COMMON_PORT', '12346')) }
env['PORT'] += self.thread_id * 100
- result += flags_match.group(1).strip().format(**env).split()
+ flag = flags_match.group(1).strip().format(**env).split()
+ # The following block reads config.gypi to extract the v8_enable_inspector
+ # value. This is done to check if the inspector is disabled in which case
+ # the '--inspect' flag cannot be passed to the node process as it will
+ # cause node to exit and report the test as failed. The use case
+ # is currently when Node is configured --without-ssl and the tests should
+ # still be runnable but skip any tests that require ssl (which includes the
+ # inspector related tests).
+ if flag[0].startswith('--inspect') and self.context.v8_enable_inspector == 0:
+ print('Skipping as inspector is disabled')
+ else:
+ result += flag
files_match = FILES_PATTERN.search(source);
additional_files = []
if files_match:
diff --git a/tools/test.py b/tools/test.py
index d6715937b6..deeb7aeffe 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -43,6 +43,7 @@ import utils
import multiprocessing
import errno
import copy
+import ast
from os.path import join, dirname, abspath, basename, isdir, exists
from datetime import datetime
@@ -867,7 +868,8 @@ class Context(object):
def __init__(self, workspace, buildspace, verbose, vm, args, expect_fail,
timeout, processor, suppress_dialogs,
- store_unexpected_output, repeat, abort_on_timeout):
+ store_unexpected_output, repeat, abort_on_timeout,
+ v8_enable_inspector):
self.workspace = workspace
self.buildspace = buildspace
self.verbose = verbose
@@ -880,6 +882,7 @@ class Context(object):
self.store_unexpected_output = store_unexpected_output
self.repeat = repeat
self.abort_on_timeout = abort_on_timeout
+ self.v8_enable_inspector = v8_enable_inspector
def GetVm(self, arch, mode):
if arch == 'none':
@@ -912,6 +915,19 @@ def RunTestCases(cases_to_run, progress, tasks, flaky_tests_mode):
progress = PROGRESS_INDICATORS[progress](cases_to_run, flaky_tests_mode)
return progress.Run(tasks)
+def GetV8InspectorEnabledFlag():
+ # The following block reads config.gypi to extract the v8_enable_inspector
+ # value. This is done to check if the inspector is disabled in which case
+ # the '--inspect' flag cannot be passed to the node process as it will
+ # cause node to exit and report the test as failed. The use case
+ # is currently when Node is configured --without-ssl and the tests should
+ # still be runnable but skip any tests that require ssl (which includes the
+ # inspector related tests).
+ with open('config.gypi', 'r') as f:
+ s = f.read()
+ config_gypi = ast.literal_eval(s)
+ return config_gypi['variables']['v8_enable_inspector']
+
# -------------------------------------------
# --- T e s t C o n f i g u r a t i o n ---
@@ -1587,7 +1603,8 @@ def Main():
options.suppress_dialogs,
options.store_unexpected_output,
options.repeat,
- options.abort_on_timeout)
+ options.abort_on_timeout,
+ GetV8InspectorEnabledFlag())
# Get status for tests
sections = [ ]