Skip to content

Commit 256eb0d

Browse files
Make test suite runnable on Debian-likes
This is mostly gunk around how the webserver is called and what is built-in versus a module. I have mostly added templating logic for commenting pieces of the conf file. Signed-off-by: Robbie Harwood <rharwood@redhat.com>
1 parent 4e80ca6 commit 256eb0d

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

tests/httpd.conf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ LoadModule filter_module modules/mod_filter.so
3838
LoadModule headers_module modules/mod_headers.so
3939
LoadModule include_module modules/mod_include.so
4040
LoadModule info_module modules/mod_info.so
41-
LoadModule log_config_module modules/mod_log_config.so
42-
LoadModule logio_module modules/mod_logio.so
41+
${NODEBIAN}LoadModule log_config_module modules/mod_log_config.so
42+
${NODEBIAN}LoadModule logio_module modules/mod_logio.so
4343
LoadModule macro_module modules/mod_macro.so
4444
LoadModule mime_magic_module modules/mod_mime_magic.so
4545
LoadModule mime_module modules/mod_mime.so
@@ -59,9 +59,9 @@ LoadModule status_module modules/mod_status.so
5959
LoadModule substitute_module modules/mod_substitute.so
6060
LoadModule suexec_module modules/mod_suexec.so
6161
LoadModule unique_id_module modules/mod_unique_id.so
62-
LoadModule unixd_module modules/mod_unixd.so
62+
${NODEBIAN}LoadModule unixd_module modules/mod_unixd.so
6363
LoadModule userdir_module modules/mod_userdir.so
64-
LoadModule version_module modules/mod_version.so
64+
${NODEBIAN}LoadModule version_module modules/mod_version.so
6565
LoadModule vhost_alias_module modules/mod_vhost_alias.so
6666
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
6767
LoadModule proxy_module modules/mod_proxy.so

tests/magtests.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,16 @@ def setup_http(testdir, wrapenv):
216216
os.mkdir(os.path.join(httpdir, 'conf.d'))
217217
os.mkdir(os.path.join(httpdir, 'html'))
218218
os.mkdir(os.path.join(httpdir, 'logs'))
219-
os.symlink('/etc/httpd/modules', os.path.join(httpdir, 'modules'))
219+
220+
distro = "Fedora"
221+
moddir = "/etc/httpd/modules"
222+
if not os.path.exists(moddir):
223+
distro = "Debian"
224+
moddir = "/usr/lib/apache2/modules"
225+
if not os.path.exists(moddir):
226+
distro = ""
227+
raise ValueError("Could not find Apache module directory!")
228+
os.symlink(moddir, os.path.join(httpdir, 'modules'))
220229

221230
shutil.copy('src/.libs/mod_auth_gssapi.so', httpdir)
222231

@@ -226,7 +235,9 @@ def setup_http(testdir, wrapenv):
226235
'HTTPNAME': WRAP_HOSTNAME,
227236
'HTTPADDR': WRAP_IPADDR,
228237
'PROXYPORT': WRAP_PROXY_PORT,
229-
'HTTPPORT': WRAP_HTTP_PORT})
238+
'HTTPPORT': WRAP_HTTP_PORT,
239+
'NODEBIAN': "#" if distro == "Debian" else "",
240+
'NOFEDORA': "#" if distro == "Fedora" else ""})
230241
config = os.path.join(httpdir, 'httpd.conf')
231242
with open(config, 'w+') as f:
232243
f.write(text)
@@ -236,8 +247,9 @@ def setup_http(testdir, wrapenv):
236247
'MALLOC_PERTURB_': str(random.randint(0, 32767) % 255 + 1)}
237248
httpenv.update(wrapenv)
238249

239-
httpproc = subprocess.Popen(['httpd', '-DFOREGROUND', '-f', config],
240-
env=httpenv, preexec_fn=os.setsid)
250+
httpd = "httpd" if distro == "Fedora" else "apache2"
251+
httpproc = subprocess.Popen([httpd, '-DFOREGROUND', '-f', config],
252+
env=httpenv, preexec_fn=os.setsid)
241253

242254
return httpproc
243255

0 commit comments

Comments
 (0)