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>
This commit is contained in:
parent
9352528779
commit
1402fef098
@ -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'],
|
||||
}]
|
||||
]
|
||||
},
|
||||
]
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
16
test/fixtures/tls-connect.js
vendored
16
test/fixtures/tls-connect.js
vendored
@ -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;
|
||||
|
@ -1,5 +1,6 @@
|
||||
'use strict';
|
||||
require('../common');
|
||||
const common = require('../common');
|
||||
common.skipIfInspectorDisabled();
|
||||
const assert = require('assert');
|
||||
const helper = require('./inspector-helper.js');
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
'use strict';
|
||||
require('../common');
|
||||
const common = require('../common');
|
||||
common.skipIfInspectorDisabled();
|
||||
const helper = require('./inspector-helper.js');
|
||||
|
||||
function shouldShutDown(session) {
|
||||
|
@ -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;
|
||||
|
@ -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({});
|
||||
|
@ -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: {
|
||||
|
@ -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({
|
||||
|
@ -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
|
||||
|
@ -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: {
|
||||
|
@ -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},
|
||||
|
@ -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');
|
||||
});
|
||||
|
@ -1,5 +1,6 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
common.skipIfInspectorDisabled();
|
||||
const assert = require('assert');
|
||||
const spawn = require('child_process').spawn;
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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 = [ ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user