MCPcopy Create free account
hub / github.com/apache/httpd / H2TestSetup

Class H2TestSetup

test/modules/http2/env.py:15–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13
14
15class H2TestSetup(HttpdTestSetup):
16
17 def __init__(self, env: 'HttpdTestEnv'):
18 super().__init__(env=env)
19 self.add_source_dir(os.path.dirname(inspect.getfile(H2TestSetup)))
20 self.add_modules(["http2", "proxy_http2", "cgid", "autoindex", "ssl", "include"])
21
22 def make(self):
23 super().make()
24 self._add_h2test()
25 self._setup_data_1k_1m()
26
27 def _add_h2test(self):
28 local_dir = os.path.dirname(inspect.getfile(H2TestSetup))
29 p = subprocess.run([self.env.apxs, '-c', 'mod_h2test.c'],
30 capture_output=True,
31 cwd=os.path.join(local_dir, 'mod_h2test'))
32 rv = p.returncode
33 if rv != 0:
34 log.error(f"compiling md_h2test failed: {p.stderr}")
35 raise Exception(f"compiling md_h2test failed: {p.stderr}")
36
37 modules_conf = os.path.join(self.env.server_dir, 'conf/modules.conf')
38 with open(modules_conf, 'a') as fd:
39 # load our test module which is not installed
40 fd.write(f"LoadModule h2test_module \"{local_dir}/mod_h2test/.libs/mod_h2test.so\"\n")
41
42 def _setup_data_1k_1m(self):
43 s90 = "01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678\n"
44 with open(os.path.join(self.env.gen_dir, "data-1k"), 'w') as f:
45 for i in range(10):
46 f.write(f"{i:09d}-{s90}")
47 with open(os.path.join(self.env.gen_dir, "data-10k"), 'w') as f:
48 for i in range(100):
49 f.write(f"{i:09d}-{s90}")
50 with open(os.path.join(self.env.gen_dir, "data-100k"), 'w') as f:
51 for i in range(1000):
52 f.write(f"{i:09d}-{s90}")
53 with open(os.path.join(self.env.gen_dir, "data-1m"), 'w') as f:
54 for i in range(10000):
55 f.write(f"{i:09d}-{s90}")
56 test1_docs = os.path.join(self.env.server_docs_dir, 'test1')
57 self.env.mkpath(test1_docs)
58 for fname in ["data-1k", "data-10k", "data-100k", "data-1m"]:
59 src = os.path.join(self.env.gen_dir, fname)
60 dest = os.path.join(test1_docs, fname)
61 copyfile(src, dest)
62
63
64class H2TestEnv(HttpdTestEnv):

Callers 1

setup_httpdMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected