Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 15 additions & 29 deletions tests/gold_tests/continuations/double.test.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
# Define default ATS. Disable the cache to simplify the test.
ts = Test.MakeATSProcess("ts", select_ports=True, command="traffic_manager", enable_cache=False)
server = Test.MakeOriginServer("server")
server2 = Test.MakeOriginServer("server2")

Test.testName = ""
request_header = {"headers": "GET / HTTP/1.1\r\nHost: double_h2.test\r\n\r\n", "timestamp": "1469733493.993", "body": ""}
Expand All @@ -45,12 +44,6 @@
ts.Disk.records_config.update({
'proxy.config.diags.debug.enabled': 1,
'proxy.config.diags.debug.tags': 'continuations_verify.*',
'proxy.config.ssl.server.cert.path': '{0}'.format(ts.Variables.SSLDir),
'proxy.config.ssl.server.private_key.path': '{0}'.format(ts.Variables.SSLDir),
'proxy.config.cache.enable_read_while_writer': 0,
'proxy.config.ssl.client.verify.server': 0,
'proxy.config.ssl.server.cipher_suite': 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:RC4-SHA:RC4-MD5:AES128-SHA:AES256-SHA:DES-CBC3-SHA!SRP:!DSS:!PSK:!aNULL:!eNULL:!SSLv2',
'proxy.config.http2.max_concurrent_streams_in': 65535
})

# add plugin to assist with test metrics
Expand Down Expand Up @@ -86,33 +79,28 @@
server.StartAfter(*ps)
tr.StillRunningAfter = ts

# Signal that all the curl processes have completed
# Signal that all the curl processes have completed and poll for done metric
tr = Test.AddTestRun("Curl Done")
tr.Processes.Default.Command = "traffic_ctl plugin msg done done"
tr.Processes.Default.Command = (
"traffic_ctl plugin msg done done ; "
"N=60 ; "
"while (( N > 0 )) ; "
"do "
"sleep 1 ; "
'if [[ "$$( traffic_ctl metric get continuations_verify.test.done )" = '
'"continuations_verify.test.done 1" ]] ; then exit 0 ; '
"fi ; "
"let N=N-1 ; "
"done ; "
"echo TIMEOUT ; "
"exit 1"
)
tr.Processes.Default.ReturnCode = 0
tr.Processes.Default.Env = ts.Env
tr.StillRunningAfter = ts

# Parking this as a ready tester on a meaningless process
# To stall the test runs that check for the stats until the
# stats have propagated and are ready to read.


def make_done_stat_ready(tsenv):
def done_stat_ready(process, hasRunFor, **kw):
retval = subprocess.run("traffic_ctl metric get continuations_verify.test.done > done 2> /dev/null", shell=True, env=tsenv)
if retval.returncode == 0:
retval = subprocess.run("grep 1 done > /dev/null", shell=True, env=tsenv)
return retval.returncode == 0

return done_stat_ready


# number of sessions/transactions opened and closed are equal
tr = Test.AddTestRun("Check Ssn")
server2.StartupTimeout = 60
# Again, here the imporant thing is the ready function not the server2 process
tr.Processes.Default.StartBefore(server2, ready=make_done_stat_ready(ts.Env))
tr.Processes.Default.Command = comparator_command.format('ssn')
tr.Processes.Default.ReturnCode = 0
tr.Processes.Default.Env = ts.Env
Expand All @@ -127,12 +115,10 @@ def done_stat_ready(process, hasRunFor, **kw):
tr.Processes.Default.Streams.stdout += Testers.ContainsExpression(
"continuations_verify.txn.close.2 {}".format(numberOfRequests), 'should be the number of transactions we made')
tr.StillRunningAfter = ts
tr.StillRunningAfter = server2

tr = Test.AddTestRun("Check Txn")
tr.Processes.Default.Command = comparator_command.format('txn')
tr.Processes.Default.ReturnCode = 0
tr.Processes.Default.Env = ts.Env
tr.Processes.Default.Streams.stdout = Testers.ContainsExpression("yes", 'should verify contents')
tr.StillRunningAfter = ts
tr.StillRunningAfter = server2