Skip to content

Tests: backport guard-clause fix tests from freenginx - #112

Open
dekobon wants to merge 4 commits into
nginx:masterfrom
dekobon:cherry/freenginx-guard-clauses
Open

Tests: backport guard-clause fix tests from freenginx#112
dekobon wants to merge 4 commits into
nginx:masterfrom
dekobon:cherry/freenginx-guard-clauses

Conversation

@dekobon

@dekobon dekobon commented Aug 28, 2026

Copy link
Copy Markdown

Summary

Companion test backports for nginx/nginx#1696 (backport of guard-clause
fixes from freenginx). Four freenginx-tests changesets by Maxim Dounin are
backported, exercising fixes carried by that PR: the request body chunk
extension/trailer limit, IMAP EXTERNAL auth password clearing, SSI stub
output, and proxy SSL password inheritance.

Each commit preserves the original author, date, and commit message, and
carries an Origin: trailer linking the freenginx-tests changeset, the
backporter's Signed-off-by:, and a Co-authored-by: trailer (all four
patches required adaptation, documented per commit).

Commits (in application order)

# Commit Description
1 d54443f Tests: tests for request body chunked extensions and trailers.
2 88c5b78 Tests: added test that EXTERNAL mail auth clears old password.
3 2385b14 Tests: SSI include stub tests.
4 48f2a8d Tests: tests for proxy_ssl_password_file issue.

Deviations from the freenginx originals

  • Version guards retargeted, not removed. The fork's version guards were
    translated to mainline versioning rather than dropped, so the suite keeps
    working against nginx builds that do not carry the fixes. The three tests
    exercising fixes from Backport guard-clause fixes from freenginx nginx#1696 are guarded with
    has_version('1.31.5') — they enforce normally on that branch and
    TODO-fail on older nginx instead of failing hard. The proxy_ssl
    inherited-key tests are guarded with has_version('1.27.5') (the released
    version carrying nginx's own merge_ssl_passwords fix) plus the usual
    TEST_NGINX_UNSAFE opt-out, since on older versions those requests
    segfault a worker and leave a coredump; the guard also covers both
    inherited-key requests, where freenginx guarded only the second.
  • Test plan counts and surrounding context differ from freenginx-tests in
    places where the files have drifted (documented in each commit body).

Companion changes

The code fixes exercised by the first three test files are in
nginx/nginx#1696, on the matching cherry/freenginx-guard-clauses branch of
dekobon/nginx. The proxy_ssl test needs
no companion change — mainline fixed that issue in 1.27.5.

Testing

All four files pass against the nginx/nginx#1696 branch build (75/75, with
SSL, HTTP/2, mail, and stream modules enabled) and degrade to TODO/skip
against builds without the fixes (verified against a stock master build).

mdounin and others added 4 commits August 27, 2026 12:00
Adapted for nginx-tests: the fork-specific version TODO guards were
retargeted from the freenginx version to nginx 1.31.5, the mainline
version expected to carry the backported fixes, following the upstream
convention for guarding tests of not-yet-released fixes.

Co-authored-by: Elijah Zupancic <e.zupancic@f5.com>
Signed-off-by: Elijah Zupancic <e.zupancic@f5.com>
Origin: <https://freenginx.org/hg/nginx-tests/rev/5cf0e07d63a11cf92e55209e832e8f34939d9025>
Adapted for nginx-tests: context and test plan count differ from
freenginx-tests, and the fork-specific version TODO guard was
retargeted from the freenginx version to nginx 1.31.5, the mainline
version expected to carry the backported fix.

Co-authored-by: Elijah Zupancic <e.zupancic@f5.com>
Signed-off-by: Elijah Zupancic <e.zupancic@f5.com>
Origin: <https://freenginx.org/hg/nginx-tests/rev/81519d01f238c5d602e0d7452c8ecb6d512e25a2>
Adapted for nginx-tests: the fork-specific version TODO guard was
retargeted from the freenginx version to nginx 1.31.5, the mainline
version expected to carry the backported fix.

Co-authored-by: Elijah Zupancic <e.zupancic@f5.com>
Signed-off-by: Elijah Zupancic <e.zupancic@f5.com>
Origin: <https://freenginx.org/hg/nginx-tests/rev/85d88cd5091c6691d58de81dec544c901f33b6d7>
Adapted for nginx-tests: context and test plan count differ from
freenginx-tests.  The fork-specific version SKIP guard around the
inherited-key requests was retargeted to nginx 1.27.5, which carries
the corresponding fix via ngx_http_upstream_merge_ssl_passwords() and
ngx_stream_proxy_merge_ssl_passwords(), and extended to cover both
requests (on older versions the first request already crashes), with a
TEST_NGINX_UNSAFE opt-out matching the guard already used for the
"optimized" tests in this file.

Co-authored-by: Elijah Zupancic <e.zupancic@f5.com>
Signed-off-by: Elijah Zupancic <e.zupancic@f5.com>
Origin: <https://freenginx.org/hg/nginx-tests/rev/0a913a10945b996bcdac073467bf7bc957ef716e>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

3 participants