test: skip test that use --tls-v1.x flags

Currently, configuring --without-ssl will cause the following test to
fail:

=== release test-https-agent-additional-options ===
Path: parallel/test-https-agent-additional-options
out/Release/node: bad option: --tls-v1.1
Command: out/Release/node --tls-v1.1
  /node/test/parallel/test-https-agent-additional-options.js

=== release test-https-agent-session-eviction ===
Path: parallel/test-https-agent-session-eviction
out/Release/node: bad option: --tls-v1.0

Command: out/Release/node --tls-v1.0
  /node/test/parallel/test-https-agent-session-eviction.js

This commit adds a check for the --tls-v.x flags and skips them if node
was built without crypto support.

PR-URL: https://github.com/nodejs/node/pull/24376
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
This commit is contained in:
Daniel Bevenius 2018-11-15 05:37:55 +01:00
parent 34eccb2a1b
commit 23e692813f
2 changed files with 20 additions and 10 deletions

View File

@ -61,7 +61,7 @@ class SimpleTestCase(test.TestCase):
source = open(self.file).read() source = open(self.file).read()
flags_match = FLAGS_PATTERN.search(source) flags_match = FLAGS_PATTERN.search(source)
if flags_match: if flags_match:
flag = flags_match.group(1).strip().split() flags = flags_match.group(1).strip().split()
# The following block reads config.gypi to extract the v8_enable_inspector # 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 # 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 # the '--inspect' flag cannot be passed to the node process as it will
@ -71,13 +71,17 @@ class SimpleTestCase(test.TestCase):
# inspector related tests). Also, if there is no ssl support the options # inspector related tests). Also, if there is no ssl support the options
# '--use-bundled-ca' and '--use-openssl-ca' will also cause a similar # '--use-bundled-ca' and '--use-openssl-ca' will also cause a similar
# failure so such tests are also skipped. # failure so such tests are also skipped.
if ('--inspect' in flag[0] or \ if (any(flag.startswith('--inspect') for flag in flags) and
'--use-bundled-ca' in flag[0] or \ not self.context.v8_enable_inspector):
'--use-openssl-ca' in flag[0]) and \ print('Skipping as node was compiled without inspector support')
self.context.v8_enable_inspector == 0: elif (('--use-bundled-ca' in flags or
print('Skipping as node was configured --without-ssl') '--use-openssl-ca' in flags or
'--tls-v1.0' in flags or
'--tls-v1.1' in flags) and
not self.context.node_has_crypto):
print('Skipping as node was compiled without crypto support')
else: else:
result += flag result += flags
files_match = FILES_PATTERN.search(source); files_match = FILES_PATTERN.search(source);
additional_files = [] additional_files = []
if files_match: if files_match:

View File

@ -907,6 +907,7 @@ class Context(object):
self.repeat = repeat self.repeat = repeat
self.abort_on_timeout = abort_on_timeout self.abort_on_timeout = abort_on_timeout
self.v8_enable_inspector = True self.v8_enable_inspector = True
self.node_has_crypto = True
def GetVm(self, arch, mode): def GetVm(self, arch, mode):
if arch == 'none': if arch == 'none':
@ -1632,9 +1633,14 @@ def Main():
# We want to skip the inspector tests if node was built without the inspector. # We want to skip the inspector tests if node was built without the inspector.
has_inspector = Execute([vm, has_inspector = Execute([vm,
"-p", "process.config.variables.v8_enable_inspector"], context) '-p', 'process.config.variables.v8_enable_inspector'], context)
if has_inspector.stdout.rstrip() == "0": if has_inspector.stdout.rstrip() == '0':
context.v8_enable_inspector = False context.v8_enable_inspector = False
has_crypto = Execute([vm,
'-p', 'process.versions.openssl'], context)
if has_crypto.stdout.rstrip() == 'undefined':
context.node_has_crypto = False
if options.cat: if options.cat:
visited = set() visited = set()