diff --git a/test/testpy/__init__.py b/test/testpy/__init__.py index 27d7124bf2ed16..7ba9674d7d6e57 100644 --- a/test/testpy/__init__.py +++ b/test/testpy/__init__.py @@ -61,7 +61,7 @@ def GetCommand(self): source = open(self.file).read() flags_match = FLAGS_PATTERN.search(source) 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 # 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 @@ -71,13 +71,17 @@ def GetCommand(self): # inspector related tests). Also, if there is no ssl support the options # '--use-bundled-ca' and '--use-openssl-ca' will also cause a similar # failure so such tests are also skipped. - if ('--inspect' in flag[0] or \ - '--use-bundled-ca' in flag[0] or \ - '--use-openssl-ca' in flag[0]) and \ - self.context.v8_enable_inspector == 0: - print('Skipping as node was configured --without-ssl') + if (any(flag.startswith('--inspect') for flag in flags) and + not self.context.v8_enable_inspector): + print('Skipping as node was compiled without inspector support') + elif (('--use-bundled-ca' in flags or + '--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: - result += flag + result += flags files_match = FILES_PATTERN.search(source); additional_files = [] if files_match: diff --git a/tools/test.py b/tools/test.py index 3a464be61da1b3..67b8cb917e0db6 100755 --- a/tools/test.py +++ b/tools/test.py @@ -907,6 +907,7 @@ def __init__(self, workspace, buildspace, verbose, vm, args, expect_fail, self.repeat = repeat self.abort_on_timeout = abort_on_timeout self.v8_enable_inspector = True + self.node_has_crypto = True def GetVm(self, arch, mode): if arch == 'none': @@ -1632,9 +1633,14 @@ def Main(): # We want to skip the inspector tests if node was built without the inspector. has_inspector = Execute([vm, - "-p", "process.config.variables.v8_enable_inspector"], context) - if has_inspector.stdout.rstrip() == "0": - context.v8_enable_inspector = False + '-p', 'process.config.variables.v8_enable_inspector'], context) + if has_inspector.stdout.rstrip() == '0': + 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: visited = set()