This is an automated email from the ASF dual-hosted git repository.
bneradt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new bac906de9c txn_box ramp autest reliability improvements (#11243)
bac906de9c is described below
commit bac906de9c3733bb553808c10cb167044ea0a4b5
Author: Brian Neradt <[email protected]>
AuthorDate: Mon Apr 22 17:38:30 2024 -0500
txn_box ramp autest reliability improvements (#11243)
This updates the ramp test to actually ramp traffic to a dedicated
"staging" server. It also reduces the number of transactions to 100.
Both of these changes makes the test more reliable against spurious
connection issues that caused the test to be flakey, especially in CI.
Fixes: #11131
---
.../pluginTest/txn_box/ramp/ramp.replay.yaml | 4 ++-
.../pluginTest/txn_box/ramp/ramp.test.py | 31 +++++++++++++++-------
2 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/tests/gold_tests/pluginTest/txn_box/ramp/ramp.replay.yaml
b/tests/gold_tests/pluginTest/txn_box/ramp/ramp.replay.yaml
index 99540faf85..5e22948c92 100644
--- a/tests/gold_tests/pluginTest/txn_box/ramp/ramp.replay.yaml
+++ b/tests/gold_tests/pluginTest/txn_box/ramp/ramp.replay.yaml
@@ -7,7 +7,9 @@ meta:
select:
- lt: 300
do:
- ua-req-host: "ex.two"
+ - ua-req-url-host: "ex.two"
+ - ua-req-url-port: {server_port}
+ - ua-req-scheme: "http"
blocks:
- base_request: &base_request
diff --git a/tests/gold_tests/pluginTest/txn_box/ramp/ramp.test.py
b/tests/gold_tests/pluginTest/txn_box/ramp/ramp.test.py
index 3d42fe6190..7f44498b2e 100644
--- a/tests/gold_tests/pluginTest/txn_box/ramp/ramp.test.py
+++ b/tests/gold_tests/pluginTest/txn_box/ramp/ramp.test.py
@@ -18,7 +18,9 @@
#
# Copyright 2020, Verizon Media
#
+
import os.path
+import tempfile
Test.Summary = '''
Test traffic ramping.
@@ -26,19 +28,30 @@ Test traffic ramping.
Test.SkipUnless(Condition.PluginExists("txn_box.so"))
-RepeatCount = 1000
+RepeatCount = 100
+replay_file = 'ramp.replay.yaml'
+
+# Make a server representing a staging host to which we can ramp.
+server_ramp = Test.MakeVerifierServerProcess('pv-server-staging', replay_file)
+# Make it so that server-ramp is used in the txn_box config.
+orig_replay_file = os.path.join(Test.TestDirectory, replay_file)
+old_replay_content = open(orig_replay_file).read()
+new_replay_content = old_replay_content.replace('{server_port}',
str(server_ramp.Variables.http_port))
+# There's no need to delete temp_replay because it will be cleaned up with the
TestDirectory.
+temp_replay = tempfile.NamedTemporaryFile(dir=Test.RunDirectory, delete=False)
+# Reference this new replay file for all other TestRun processes.
+replay_file = temp_replay.name
+open(replay_file, 'w').write(new_replay_content)
tr = Test.TxnBoxTestAndRun(
"Ramping",
- "ramp.replay.yaml",
- remap=[('http://one.ex', 'http://three.ex', ('--key=meta.txn_box.remap',
'ramp.replay.yaml'))],
- verifier_client_args="--verbose diag --repeat {}".format(RepeatCount))
-
-with open(f"{tr.TestDirectory}/multi_ramp_common.py") as f:
- code = compile(f.read(), "multi_ramp_common.py", 'exec')
- exec(code)
+ replay_file,
+ remap=[('http://one.ex', 'http://three.ex', ('--key=meta.txn_box.remap',
replay_file))],
+ verifier_client_args=f"--verbose diag --repeat {RepeatCount}",
+ verifier_server_args=f"--verbose diag")
ts = tr.Variables.TS
-ts.Setup.Copy("ramp.replay.yaml", ts.Variables.CONFIGDIR)
+ts.StartBefore(server_ramp)
+ts.Setup.Copy(replay_file, ts.Variables.CONFIGDIR)
ts.Setup.Copy("ramp.logging.yaml", os.path.join(ts.Variables.CONFIGDIR,
"logging.yaml"))
ts.Disk.records_config.update({'proxy.config.log.max_secs_per_buffer': 1})