1
0
mirror of https://github.com/apache/httpd.git synced 2026-10-23 22:49:01 +03:00

CI: Check for expected definitions in the generated config header.

* .github/workflows/linux.yml: Add config-output and config-no-output
  matrix keys, giving definitions which must be present in or absent
  from include/ap_config_auto.h, and a step to check each.  Use them
  for the Linux defaults and the PACKAGE_* definitions buildconf
  strips in the Default job, for AP_FORCE_EXPORTS and HAVE_SYSTEMD in
  the reduced exports job, and for HAVE_NGHTTP2 and HAVE_CURL in the
  OpenSSL 3.0 job which disables mod_http2 and mod_md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub: PR #380


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1937571 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Joe Orton
2026-08-28 13:34:25 +00:00
parent 814190848c
commit bf39fbf83e

View File

@@ -157,6 +157,17 @@ jobs:
PYTEST_ARGS=--only=pyhttpd
# -------------------------------------------------------------------------
- name: Default
# Check the defaults expected for a default build on Linux.
config-output: >-
SINGLE_LISTEN_UNSERIALIZED_ACCEPT AP_NONBLOCK_WHEN_MULTI_LISTEN
AP_ENABLE_V4_MAPPED HAVE_GMTOFF HAVE_FDPASSING HAVE_CRYPT_SHA2
HAVE_PCRE2 HAVE_EPOLL_CREATE HAVE_GETTID HAVE_PRCTL HAVE_TIMEGM
HAVE_GETLOADAVG HAVE_FOPEN64 HAVE_SETSID HAVE_KILLPG HAVE_INITGROUPS
AP_FORCE_EXPORTS HAVE_NGHTTP2 HAVE_CURL
# buildconf strips these from the generated header.
config-no-output: >-
PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING
PACKAGE_BUGREPORT PACKAGE_URL
# -------------------------------------------------------------------------
- name: All-static modules
config: --enable-mods-static=reallyall
@@ -291,6 +302,8 @@ jobs:
- name: Configured w/reduced exports
config: --enable-reduced-exports --enable-maintainer-mode --enable-systemd
pkgs: libsystemd-dev
config-output: HAVE_SYSTEMD
config-no-output: AP_FORCE_EXPORTS
env: |
SKIP_TESTING=1
TEST_INSTALL=1
@@ -313,6 +326,7 @@ jobs:
# -------------------------------------------------------------------------
- name: OpenSSL 3.0 LTS
config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto
config-no-output: HAVE_NGHTTP2 HAVE_CURL
env: |
TEST_OPENSSL3=3.0.21
APR_VERSION=1.7.6
@@ -447,6 +461,18 @@ jobs:
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Build and test
run: ./test/travis_run_linux.sh
# Checks the config header in the build tree, so this must follow
# the build, and is only useful for a non-VPATH job.
- if: ${{ matrix.config-output != '' }}
name: Check for expected ap_config_auto.h definitions
run: for var in ${{ matrix.config-output }}; do
grep --color=always "^#define *${var} *1" include/ap_config_auto.h;
done
- if: ${{ matrix.config-no-output != '' }}
name: Check for unexpected ap_config_auto.h definitions
run: for var in ${{ matrix.config-no-output }}; do
! grep --color=always "^#define *${var}" include/ap_config_auto.h;
done
- uses: actions/upload-artifact@v7
if: failure()
with: