1# Convenience test module to run all of the OpenSSL-related tests in the
2# standard library.
3
4import ssl
5import sys
6import subprocess
7
8TESTS = [
9    'test_asyncio', 'test_ensurepip.py', 'test_ftplib', 'test_hashlib',
10    'test_hmac', 'test_httplib', 'test_imaplib', 'test_nntplib',
11    'test_poplib', 'test_ssl', 'test_smtplib', 'test_smtpnet',
12    'test_urllib2_localnet', 'test_venv', 'test_xmlrpc'
13]
14
15def run_regrtests(*extra_args):
16    print(ssl.OPENSSL_VERSION)
17    args = [
18        sys.executable,
19        '-Werror', '-bb',  # turn warnings into exceptions
20        '-m', 'test',
21    ]
22    if not extra_args:
23        args.extend([
24            '-r',  # randomize
25            '-w',  # re-run failed tests with -v
26            '-u', 'network',  # use network
27            '-u', 'urlfetch',  # download test vectors
28            '-j', '0'  # use multiple CPUs
29        ])
30    else:
31        args.extend(extra_args)
32    args.extend(TESTS)
33    result = subprocess.call(args)
34    sys.exit(result)
35
36if __name__ == '__main__':
37    run_regrtests(*sys.argv[1:])
38