Skip to content

CI: run everything pytest-able and various cleanups - #701

Open
notroj wants to merge 50 commits into
apache:trunkfrom
notroj:ci-more-pytesting
Open

CI: run everything pytest-able and various cleanups#701
notroj wants to merge 50 commits into
apache:trunkfrom
notroj:ci-more-pytesting

Conversation

@notroj

@notroj notroj commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

notroj added 7 commits July 17, 2026 11:23
* modules/metadata/mod_remoteip.c (remoteip_process_v2_header): Set
  conn_conf->client_addr and client_ip for the LOCAL case, matching
  the v1 UNKNOWN path.

Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* modules/ssl/ssl_engine_ocsp.c (determine_responder_uri): Check
  u->scheme is non-NULL before calling ap_cstr_casecmp(), since
  apr_uri_parse() can succeed with a NULL scheme for scheme-less URIs.

Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* modules/metadata/mod_cern_meta.c (scan_meta_file): Return a 500
  error if a framing header is found in a .meta file rather than
  merging it into the response headers.

Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* modules/ldap/util_ldap.c: Hold the LDAP cache lock continuously
  from URL node fetch through child cache access, closing the window
  where a concurrent request could free the node between unlock and
  re-lock.  Re-fetch the URL node under the lock for write-back paths.

Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* modules/ssl/ssl_engine_kernel.c (set_challenge_creds): Return rv
  rather than APR_SUCCESS unconditionally, so credential setup
  failures are propagated to the ALPN selection callback.

Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* modules/filters/mod_substitute.c (set_max_line_length): Check that
  the parsed value does not exceed APR_INT64_MAX / multiplier before
  applying the K/M/G suffix, to avoid signed integer overflow UB.

Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* modules/filters/mod_substitute.c (set_pattern): Guard the
  pre-incrementing delimiter scan loops with a NUL check, preventing
  a read past the end of the allocation when the from or to field has
  no closing delimiter.

Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com>
asf-gitbox-commits pushed a commit that referenced this pull request Aug 4, 2026
asf-gitbox-commits pushed a commit that referenced this pull request Aug 4, 2026
  suites via test/run-all-tests.sh against the check/ build tree.
  (PHONY_TARGETS): Add check-pytest and check-all-pytest.

* test/run-all-tests.sh: Document PYHTTPD_CONFIG.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936870 13f79535-47bb-0310-9956-ffa450edef68
asf-gitbox-commits pushed a commit that referenced this pull request Aug 4, 2026
register_argc_argv so PHP tests see $_SERVER['argc']/['argv'] under
FPM, which mod_php's config for this never actually reached.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936871 13f79535-47bb-0310-9956-ffa450edef68
asf-gitbox-commits pushed a commit that referenced this pull request Aug 4, 2026
  resolve() the httpd path before deriving ab's; it follows the
  check/bin/httpd symlink out of the check/ tree, so ab was never
  found there.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936872 13f79535-47bb-0310-9956-ffa450edef68
asf-gitbox-commits pushed a commit that referenced this pull request Aug 4, 2026
Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936873 13f79535-47bb-0310-9956-ffa450edef68
asf-gitbox-commits pushed a commit that referenced this pull request Aug 4, 2026
  jobs together. No functional change. [skip ci]

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936874 13f79535-47bb-0310-9956-ffa450edef68
asf-gitbox-commits pushed a commit that referenced this pull request Aug 4, 2026
Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936875 13f79535-47bb-0310-9956-ffa450edef68
@notroj
notroj force-pushed the ci-more-pytesting branch 2 times, most recently from a478c46 to 3e0a8ae Compare August 7, 2026 13:24
asf-gitbox-commits pushed a commit that referenced this pull request Aug 7, 2026
  variable.

Fixes: 01a5969 (SVN r1936849)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936968 13f79535-47bb-0310-9956-ffa450edef68
asf-gitbox-commits pushed a commit that referenced this pull request Aug 7, 2026
  t/conf/cacheroot/, t/htdocs/modules/autoindex2/,
  t/htdocs/modules/substitute/test.txt, and t/state/.

* test/pytest_suite/t/htdocs/apache/cfg_getline/.htaccess,
  authz_core/a/.htaccess, authz_core/a/b/.htaccess,
  authz_core/a/b/c/.htaccess: Remove stale generated content that
  had been committed by mistake.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936969 13f79535-47bb-0310-9956-ffa450edef68
asf-gitbox-commits pushed a commit that referenced this pull request Aug 7, 2026
  instead of just checking the config string is non-empty.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936973 13f79535-47bb-0310-9956-ffa450edef68
asf-gitbox-commits pushed a commit that referenced this pull request Aug 7, 2026
* test/pytest_suite/conftest.py (framework): Record error_log's size
  before httpd starts, as session_log_start.

* test/pytest_suite/tests/t/modules/test_proxy_beacon.py
  (test_proxy_beacon): Scope the "added backend" log check to
  session_log_start instead of the per-test window or byte 0.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR #701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936976 13f79535-47bb-0310-9956-ffa450edef68
covener and others added 10 commits August 7, 2026 15:47
* modules/proxy/mod_proxy_balancer.c (find_session_route): Replace
  isspace() with apr_isspace() to avoid locale-dependent behavior
  and undefined behavior with negative char values.

Submitted by: arshsmith1 <arshi bugqore.com>
GitHub: closes apache#675


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936266 13f79535-47bb-0310-9956-ffa450edef68
* modules/slotmem/mod_slotmem_plain.c,
  modules/slotmem/mod_slotmem_shm.c
  (slotmem_size_mul, slotmem_size_add): New helper functions for
  checked arithmetic on apr_size_t values.
  (slotmem_create): Use checked arithmetic for allocation size
  calculations to prevent integer overflow.
  (slotmem_grab): Add overflow check on size * id multiplication
  before pointer arithmetic.
  (slotmem_get): Validate dest_len against slot size before access,
  move inuse pointer dereference after bounds checks.
  (slotmem_put): Validate src_len against slot size before access,
  move inuse pointer dereference after bounds checks.

* modules/slotmem/mod_slotmem_shm.c (slotmem_fgrab): Add overflow
  check on size * id multiplication before pointer arithmetic.
  (slotmem_attach): Validate shared memory segment size against
  expected size computed with checked arithmetic. Use basesize
  variable for inuse pointer calculation.

Submitted by: metsw24-max <metsw24 gmail.com>
GitHub: closes apache#626


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936268 13f79535-47bb-0310-9956-ffa450edef68
Submitted by: Alb3e3 <74142887+Alb3e3 users.noreply.github.com>
GitHub: closes apache#670


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936269 13f79535-47bb-0310-9956-ffa450edef68
  o Call location independence
  o Fully support pip or uv
  o Better reporting of test results when both suites are run
  o Support postitional args for test cases in a reliable manner


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936270 13f79535-47bb-0310-9956-ffa450edef68
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936291 13f79535-47bb-0310-9956-ffa450edef68
* modules/metadata/mod_remoteip.c
  (remoteip_get_v2_len): Move definition before first use.
  (remoteip_parse_v2_header): Add length validation for TCPv4
  and TCPv6 address families before parsing, returning HDR_ERROR
  if the header length is too short.

Submitted by: arshiya tabasum <arshi bugqore.com>
GitHub: closes apache#683


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936357 13f79535-47bb-0310-9956-ffa450edef68
ichristod and others added 29 commits August 7, 2026 15:47
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936571 13f79535-47bb-0310-9956-ffa450edef68
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936759 13f79535-47bb-0310-9956-ffa450edef68
  if the read fails.

PR: 70021
Github: closes apache#700


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936760 13f79535-47bb-0310-9956-ffa450edef68
and crl_path. Make ordering consistent to match all
other files and paths.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936867 13f79535-47bb-0310-9956-ffa450edef68
  suites via test/run-all-tests.sh against the check/ build tree.
  (PHONY_TARGETS): Add check-pytest and check-all-pytest.

* test/run-all-tests.sh: Document PYHTTPD_CONFIG.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR apache#701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936870 13f79535-47bb-0310-9956-ffa450edef68
register_argc_argv so PHP tests see $_SERVER['argc']/['argv'] under
FPM, which mod_php's config for this never actually reached.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR apache#701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936871 13f79535-47bb-0310-9956-ffa450edef68
  resolve() the httpd path before deriving ab's; it follows the
  check/bin/httpd symlink out of the check/ tree, so ab was never
  found there.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR apache#701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936872 13f79535-47bb-0310-9956-ffa450edef68
Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR apache#701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936873 13f79535-47bb-0310-9956-ffa450edef68
  jobs together. No functional change. [skip ci]

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR apache#701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936874 13f79535-47bb-0310-9956-ffa450edef68
Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
GitHub: PR apache#701


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936875 13f79535-47bb-0310-9956-ffa450edef68
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936881 13f79535-47bb-0310-9956-ffa450edef68
fallback to 127.0.0.1 if lp->bind_addr is INADDR_ANY and that connect() fails with EINVAL
bz #69857


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936893 13f79535-47bb-0310-9956-ffa450edef68
and SSLTrustURI. Move CRL functionality from a dedicated directive
into SSLTrustURI.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936908 13f79535-47bb-0310-9956-ffa450edef68
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1936909 13f79535-47bb-0310-9956-ffa450edef68
before httpd starts, as session_log_start.

* test/pytest_suite/tests/t/modules/test_proxy_beacon.py
(test_proxy_beacon): Scope the "added backend" log check to
session_log_start instead of the per-test window or byte 0.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
instead of just checking the config string is non-empty.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
Covers RFC 2617 challenge/response, nonce lifecycle (tamper/stale/
expiry/one-time), AuthDigestNcCheck, AuthDigestDomain, provider
fallback, and config-time validation.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
* test/travis_run_linux.sh: Replace TEST_CORE/TEST_PROXY/TEST_H2 with
one TEST_PYTEST block, running `make check-all-pytest` over every
test/modules/*/ suite except modules/md (needs an ACME/pebble server
not available here). Keep the old TEST_MD/pebble logic for reference,
under a conditional that is never set.

* .github/workflows/linux.yml: Replace the "HTTP/2 test suite" job and
the disabled "ACME test suite" job with one "Python pytest test
suites" job setting TEST_PYTEST=1. Drop TEST_INSTALL: check-all-pytest
tests the check/ build tree directly. Drop the python3-pytest/
python3-cryptography/etc. packages, since both suites now manage their
own dependencies via uv; install uv from the Ubuntu package instead.
Capture the new suites' error logs as failure artifacts.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
an Ubuntu package, so the shared "Install prerequisites" apt-get
command was failing outright.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
  and ASan pool-debug jobs. Move pipx and curl into the always-installed
  base packages; add nghttp2-client to the ASan jobs.

* test/travis_run_linux.sh: Exclude modules/http2 from the pytest run
  when mod_http2.so wasn't built.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
  t/conf/cacheroot/, t/htdocs/modules/autoindex2/,
  t/htdocs/modules/substitute/test.txt, and t/state/.

* test/pytest_suite/t/htdocs/apache/cfg_getline/.htaccess,
  authz_core/a/.htaccess, authz_core/a/b/.htaccess,
  authz_core/a/b/c/.htaccess: Remove stale generated content that
  had been committed by mistake.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
  @STATEDIR@ config template variable.

* test/pytest_suite/t/conf/cache.conf.in, tests/t/modules/test_cache.py:
  Use @STATEDIR@/cacheroot/ for CacheRoot, instead of t/conf/cacheroot.

* test/pytest_suite/.gitignore: Drop the now-obsolete
  t/conf/cacheroot/ entry.

Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
  variable.

Fixes: 01a5969 (SVN r1936849)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@notroj
notroj force-pushed the ci-more-pytesting branch from aa66436 to 9a0a827 Compare August 7, 2026 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants