From 33f5dd460daabbc1adc4d616daa478f6f17aa046 Mon Sep 17 00:00:00 2001 From: Paul Lodge Date: Fri, 6 Nov 2026 12:28:42 +0100 Subject: [PATCH 1/4] Updated so that tests that don't use the suexec module don't load it --- test/modules/core/env.py | 6 ++++-- test/modules/core/test_005_userdir_headers.py | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/test/modules/core/env.py b/test/modules/core/env.py index 21906be7361..64c03e34083 100644 --- a/test/modules/core/env.py +++ b/test/modules/core/env.py @@ -12,7 +12,7 @@ class CoreTestSetup(HttpdTestSetup): def __init__(self, env: 'HttpdTestEnv'): super().__init__(env=env) self.add_source_dir(os.path.dirname(inspect.getfile(CoreTestSetup))) - self.add_modules(["cgid","include","userdir","suexec","headers"]) + self.add_modules(["cgid","include"]) class CoreTestEnv(HttpdTestEnv): @@ -22,4 +22,6 @@ def __init__(self, pytestconfig=None): self.add_httpd_log_modules(["http", "core"]) def setup_httpd(self, setup: HttpdTestSetup = None): - super().setup_httpd(setup=CoreTestSetup(env=self)) + if setup is None: + setup = CoreTestSetup(env=self) + super().setup_httpd(setup=setup) diff --git a/test/modules/core/test_005_userdir_headers.py b/test/modules/core/test_005_userdir_headers.py index c28bb96e3e0..c57e04a587b 100644 --- a/test/modules/core/test_005_userdir_headers.py +++ b/test/modules/core/test_005_userdir_headers.py @@ -3,18 +3,21 @@ import pytest from pyhttpd.conf import HttpdConf +from .env import HttpdTestEnv, CoreTestSetup class TestUserdirHeaders: @pytest.fixture(autouse=True, scope='class') def _class_scope(self, env): + setup = CoreTestSetup(env=env) + setup.add_modules(["userdir","suexec","headers"]) + env.setup_httpd(setup=setup) userdir_base = os.path.join(env.server_dir, "htdocs", "userdir") conf = HttpdConf(env, extras={ 'base': f""" UserDir "{userdir_base}/*/public_html" - AllowOverride FileInfo Options +ExecCGI @@ -26,6 +29,7 @@ def _class_scope(self, env): conf.install() assert env.apache_restart() == 0 + @pytest.mark.skipif(condition=(not HttpdTestEnv.has_shared_module("suexec")), reason="Skipping as the suexec module hasn't been built and installed.") def test_core_005_01_requestheader_note_rejected(self, env): url = env.mkurl("http", "test1", "/~testuser/cgi-bin/test.cgi") r = env.curl_get(url) From 4fb494029afefd5b1f16a579d52515e6138da49e Mon Sep 17 00:00:00 2001 From: Paul Lodge Date: Mon, 9 Nov 2026 10:56:36 +0100 Subject: [PATCH 2/4] Fix for failing test_core_005_01_requestheader_note_rejected --- test/modules/core/env.py | 2 +- test/modules/core/test_005_userdir_headers.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/modules/core/env.py b/test/modules/core/env.py index 64c03e34083..62d8ce82f25 100644 --- a/test/modules/core/env.py +++ b/test/modules/core/env.py @@ -12,7 +12,7 @@ class CoreTestSetup(HttpdTestSetup): def __init__(self, env: 'HttpdTestEnv'): super().__init__(env=env) self.add_source_dir(os.path.dirname(inspect.getfile(CoreTestSetup))) - self.add_modules(["cgid","include"]) + self.add_modules(["cgid","include","userdir","headers"]) class CoreTestEnv(HttpdTestEnv): diff --git a/test/modules/core/test_005_userdir_headers.py b/test/modules/core/test_005_userdir_headers.py index c57e04a587b..3e9ee6ff3b4 100644 --- a/test/modules/core/test_005_userdir_headers.py +++ b/test/modules/core/test_005_userdir_headers.py @@ -10,7 +10,7 @@ class TestUserdirHeaders: @pytest.fixture(autouse=True, scope='class') def _class_scope(self, env): setup = CoreTestSetup(env=env) - setup.add_modules(["userdir","suexec","headers"]) + setup.add_modules(["suexec"]) env.setup_httpd(setup=setup) userdir_base = os.path.join(env.server_dir, "htdocs", "userdir") @@ -39,7 +39,7 @@ def test_core_005_01_requestheader_note_rejected(self, env): directive_rejected = False try: - directive_rejected = env.httpd_error_log.scan_recent(re_rejection) + directive_rejected = env.httpd_error_log.wait_for(re_rejection, start_pos=0, timeout=25) except TimeoutError: pass From 0ad88f2c9a491aa1029aa6b0b8089d88b8ec3996 Mon Sep 17 00:00:00 2001 From: Paul Lodge Date: Mon, 9 Nov 2026 12:58:33 +0100 Subject: [PATCH 3/4] removing the suexec fixes test_core_005_01_requestheader_note_rejected --- test/modules/core/env.py | 4 +--- test/modules/core/test_005_userdir_headers.py | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/test/modules/core/env.py b/test/modules/core/env.py index 62d8ce82f25..c65f27127cf 100644 --- a/test/modules/core/env.py +++ b/test/modules/core/env.py @@ -22,6 +22,4 @@ def __init__(self, pytestconfig=None): self.add_httpd_log_modules(["http", "core"]) def setup_httpd(self, setup: HttpdTestSetup = None): - if setup is None: - setup = CoreTestSetup(env=self) - super().setup_httpd(setup=setup) + super().setup_httpd(setup=CoreTestSetup(env=self)) diff --git a/test/modules/core/test_005_userdir_headers.py b/test/modules/core/test_005_userdir_headers.py index 3e9ee6ff3b4..d059ead0e5f 100644 --- a/test/modules/core/test_005_userdir_headers.py +++ b/test/modules/core/test_005_userdir_headers.py @@ -9,9 +9,6 @@ class TestUserdirHeaders: @pytest.fixture(autouse=True, scope='class') def _class_scope(self, env): - setup = CoreTestSetup(env=env) - setup.add_modules(["suexec"]) - env.setup_httpd(setup=setup) userdir_base = os.path.join(env.server_dir, "htdocs", "userdir") @@ -29,7 +26,6 @@ def _class_scope(self, env): conf.install() assert env.apache_restart() == 0 - @pytest.mark.skipif(condition=(not HttpdTestEnv.has_shared_module("suexec")), reason="Skipping as the suexec module hasn't been built and installed.") def test_core_005_01_requestheader_note_rejected(self, env): url = env.mkurl("http", "test1", "/~testuser/cgi-bin/test.cgi") r = env.curl_get(url) @@ -39,7 +35,7 @@ def test_core_005_01_requestheader_note_rejected(self, env): directive_rejected = False try: - directive_rejected = env.httpd_error_log.wait_for(re_rejection, start_pos=0, timeout=25) + directive_rejected = env.httpd_error_log.scan_recent(re_rejection) except TimeoutError: pass From d0d9bdcc6d0dcc5a4c27b92761f2fc4f32bf70ad Mon Sep 17 00:00:00 2001 From: Paul Lodge Date: Mon, 9 Nov 2026 13:09:27 +0100 Subject: [PATCH 4/4] clean up unused import --- test/modules/core/test_005_userdir_headers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/test/modules/core/test_005_userdir_headers.py b/test/modules/core/test_005_userdir_headers.py index d059ead0e5f..a6d93ce2eab 100644 --- a/test/modules/core/test_005_userdir_headers.py +++ b/test/modules/core/test_005_userdir_headers.py @@ -3,7 +3,6 @@ import pytest from pyhttpd.conf import HttpdConf -from .env import HttpdTestEnv, CoreTestSetup class TestUserdirHeaders: