source: mod_gnutls/test/tests/28_HTTP2_support/ @ 0f52d48

Last change on this file since 0f52d48 was 0f52d48, checked in by Fiona Klute <fiona.klute@…>, 14 months ago

Switch most tests to instead of preconditions in test scripts

The new function mgstest.require_apache_modules() covers required
Apache modules, the rest is individual stuff.

  • Property mode set to 100644
File size: 1.5 KB
[0909c92]1import os
[0f65ea9]2import re
[0909c92]3import subprocess
[0f52d48]4from mgstest import require_apache_modules, require_match
5from unittest import SkipTest
7def prepare_env():
8    require_apache_modules('')
9    curl = os.environ['HTTP_CLI']
10    if curl == 'no':
11        raise SkipTest(f'{curl} not found!')
12    proc =[curl, '-V'], stdout=subprocess.PIPE,
13                          check=True, text=True)
14    if not'\bHTTP2\b', proc.stdout):
15        raise SkipTest(f'{curl} does not support HTTP/2!')
17def run_connection(testname, conn_log, response_log):
[0f52d48]18    """Check if HTTP/2 connections using mod_gnutls and mod_http2 work."""
[0909c92]20    url = f'https://{os.environ["TEST_HOST"]}:{os.environ["TEST_PORT"]}' \
21        '/status?auto'
22    command = [os.environ['HTTP_CLI'], '--http2', '--location', '--verbose',
23               '--cacert', 'authority/x509.pem', url]
25    proc =,
26                          stdout=subprocess.PIPE, stderr=subprocess.PIPE,
27                          check=True, text=True)
28    print(proc.stderr)
29    print(proc.stderr, file=conn_log)
30    print(proc.stdout)
31    print(proc.stdout, file=response_log)
33def post_check(conn_log, response_log):
34    print('Checking for HTTP/2 in logged header:')
35    print(require_match(re.compile(r'\bHTTP/2 200\b'), conn_log).group(0))
36    print('Checking for TLS session status:')
37    print(require_match(re.compile(r'^Current TLS session:\s\(TLS.*$'),
38                        response_log)
39          .group(0))
Note: See TracBrowser for help on using the repository browser.