Skip to content

AuTest timing improvements - #13540

Open
bneradt wants to merge 1 commit into
apache:masterfrom
bneradt:autest-timing-improvements
Open

AuTest timing improvements#13540
bneradt wants to merge 1 commit into
apache:masterfrom
bneradt:autest-timing-improvements

Conversation

@bneradt

@bneradt bneradt commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Parallel AuTest runs were repeating similarly named tests, while timing
collection reset shared port allocation by starting a process per test.
Several tests also waited on client defaults, retries, and log buffering
rather than behavior under verification.

Exact test selection

The runner now anchors worker filters to test paths. This avoids suffix
collisions, duplicate runs, and parallel execution of serial tests.

Batch timing collection

The runner now measures completions from persistent worker batches. This
preserves shared port allocation and removes per-test process startup.

Rate-limit expiration

The rate-limit test bounds the queued client wait and requires the ATS
expiration diagnostic, retaining queue-expiration coverage.

Server-abort timeouts

The server-abort test disables retries and shortens connection and
inactivity timeouts that are unrelated to the expected abort.

JAX fingerprint log flushing

The JAX fingerprint test flushes log buffers once per second so its
existing log assertions do not wait on production buffering defaults.

Stale-response log flushing

The stale-response test similarly flushes logs once per second while
retaining its existing traffic and log assertions.

Local timing results

In the asfats5 container with a Debug build, an instrumented full-suite
autest.sh -j8 -v invocation decreased from 18m43s (1122.8 seconds) to
15m09s (908.8 seconds). This saved 3m34s of wall-clock time, or 19%.

Test Before After
rate_limit_sni 308.2s 11.4s
server_abort 127.4s 6.1s
jax_fingerprint 169.3s 102.6s
stale_response 113.4s 81.3s

Parallel AuTest runs were repeating similarly named tests, while timing
collection reset shared port allocation by starting a process per test.
Several tests also waited on client defaults, retries, and log buffering
rather than behavior under verification.

Exact test selection
--------------------
The runner now anchors worker filters to test paths. This avoids suffix
collisions, duplicate runs, and parallel execution of serial tests.

Batch timing collection
-----------------------
The runner now measures completions from persistent worker batches. This
preserves shared port allocation and removes per-test process startup.

Rate-limit expiration
---------------------
The rate-limit test bounds the queued client wait and requires the ATS
expiration diagnostic, retaining queue-expiration coverage.

Server-abort timeouts
---------------------
The server-abort test disables retries and shortens connection and
inactivity timeouts that are unrelated to the expected abort.

JAX fingerprint log flushing
----------------------------
The JAX fingerprint test flushes log buffers once per second so its
existing log assertions do not wait on production buffering defaults.

Stale-response log flushing
---------------------------
The stale-response test similarly flushes logs once per second while
retaining its existing traffic and log assertions.
Copilot AI lite review requested due to automatic review settings August 12, 2026 22:13
@bneradt bneradt added this to the 11.0.0 milestone Aug 12, 2026
@bneradt bneradt self-assigned this Aug 12, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants