You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by cm...@apache.org on 2026/02/23 18:58:42 UTC
(trafficserver) 04/08: Fix flaky filter_body test (#12882)
This is an automated email from the ASF dual-hosted git repository.
cmcfarlen pushed a commit to branch 10.2.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit ffd1d59e262c54bb242fc6c3eb67074820c68b6c
Author: Brian Neradt <br...@gmail.com>
AuthorDate: Thu Feb 12 16:19:03 2026 -0600
Fix flaky filter_body test (#12882)
The filter_body test's Proxy Verifier client can exit with either 0 or
1 depending on timing of connection closure during request body
blocking. The ATSReplayTest extension only supported a single scalar
return_code value, so the test would intermittently fail when the client
happened to exit with 0 instead of the expected 1.
Support a list of return codes in the replay YAML by wrapping them in
Any() when a list is provided, and update the filter_body test to accept
either exit code.
(cherry picked from commit 1b6847fd677828adf950be95d742c77330768963)
---
tests/gold_tests/autest-site/ats_replay.test.ext | 12 ++++++++----
.../pluginTest/filter_body/filter_body.replay.yaml | 4 +++-
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/tests/gold_tests/autest-site/ats_replay.test.ext b/tests/gold_tests/autest-site/ats_replay.test.ext
index 75bd1306d5..bb9e19d8c8 100644
--- a/tests/gold_tests/autest-site/ats_replay.test.ext
+++ b/tests/gold_tests/autest-site/ats_replay.test.ext
@@ -172,9 +172,11 @@ def ATSReplayTest(obj, replay_file: str):
process_config = server_config.get('process_config', {})
server = tr.AddVerifierServerProcess(name, replay_file, **process_config)
- # Set expected return code for server if specified.
+ # Set expected return code for server if specified. A list of codes is
+ # wrapped in Any() so that any of the listed values is accepted.
if 'return_code' in server_config:
- server.ReturnCode = server_config['return_code']
+ rc = server_config['return_code']
+ server.ReturnCode = Any(*rc) if isinstance(rc, list) else rc
# ATS configuration.
if not 'ats' in autest_config:
@@ -193,9 +195,11 @@ def ATSReplayTest(obj, replay_file: str):
client = tr.AddVerifierClientProcess(
name, replay_file, http_ports=[ts.Variables.port], https_ports=https_ports, **process_config)
- # Set expected return code if specified.
+ # Set expected return code if specified. A list of codes is wrapped in
+ # Any() so that any of the listed values is accepted.
if 'return_code' in client_config:
- client.ReturnCode = client_config['return_code']
+ rc = client_config['return_code']
+ client.ReturnCode = Any(*rc) if isinstance(rc, list) else rc
if dns:
ts.StartBefore(dns)
diff --git a/tests/gold_tests/pluginTest/filter_body/filter_body.replay.yaml b/tests/gold_tests/pluginTest/filter_body/filter_body.replay.yaml
index 1b70d6048a..78f66584f4 100644
--- a/tests/gold_tests/pluginTest/filter_body/filter_body.replay.yaml
+++ b/tests/gold_tests/pluginTest/filter_body/filter_body.replay.yaml
@@ -29,7 +29,9 @@ autest:
client:
name: 'client'
- return_code: 1
+ # There's a race condition for when the connection is droped by ATS - this
+ # can result in either a 0 or 1 return code.
+ return_code: [0, 1]
ats:
name: 'ts'