Skip to content

Commit 2edeae4

Browse files
authored
reuse multiple times (#7992)
1 parent c3827da commit 2edeae4

File tree

1 file changed

+47
-14
lines changed

1 file changed

+47
-14
lines changed

tests/gold_tests/tls/tls_session_reuse.test.py

Lines changed: 47 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -103,34 +103,67 @@
103103
'proxy.config.ssl.server.session_ticket.enable': 1,
104104
})
105105

106+
107+
def check_session(ev, test):
108+
retval = False
109+
f = open(test.GetContent(ev), 'r')
110+
err = "Session ids match"
111+
if not f:
112+
err = "Failed to open {0}".format(openssl_output)
113+
return (retval, "Check that session ids match", err)
114+
115+
content = f.read()
116+
match = re.findall('Session-ID: ([0-9A-F]+)', content)
117+
118+
if match:
119+
if all(i == j for i, j in zip(match, match[1:])):
120+
err = "{0} reused successfully {1} times".format(match[0], len(match) - 1)
121+
retval = True
122+
else:
123+
err = "Session is not being reused as expected"
124+
else:
125+
err = "Didn't find session id"
126+
return (retval, "Check that session ids match", err)
127+
128+
106129
tr = Test.AddTestRun("TLSv1.2 Session ID")
107130
tr.Command = \
108131
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_out {1} && ' \
132+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \
133+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \
134+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \
135+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \
109136
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1}' \
110137
.format(ts1.Variables.ssl_port, os.path.join(Test.RunDirectory, 'sess.dat'))
111138
tr.ReturnCode = 0
112139
tr.Processes.Default.StartBefore(server)
113140
tr.Processes.Default.StartBefore(ts1)
114-
tr.Processes.Default.Streams.All = Testers.ContainsExpression('Reused, TLSv', '')
115-
tr.Processes.Default.Streams.All += Testers.ContainsExpression('Protocol : TLSv1.2', '')
141+
tr.Processes.Default.Streams.All.Content = Testers.Lambda(check_session)
116142
tr.StillRunningAfter = server
117143

118-
tr = Test.AddTestRun("TLSv1.2 Session Ticket")
119-
tr.Command = \
144+
tr1 = Test.AddTestRun("TLSv1.2 Session Ticket")
145+
tr1.Command = \
120146
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_out {1} && ' \
147+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1} && ' \
148+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1} && ' \
149+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1} && ' \
150+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1} && ' \
121151
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -sess_in {1}' \
122152
.format(ts2.Variables.ssl_port, os.path.join(Test.RunDirectory, 'sess.dat'))
123-
tr.ReturnCode = 0
124-
tr.Processes.Default.StartBefore(ts2)
125-
tr.Processes.Default.Streams.All = Testers.ContainsExpression('Reused, TLSv', '')
126-
tr.Processes.Default.Streams.All += Testers.ContainsExpression('Protocol : TLSv1.2', '')
127-
tr.StillRunningAfter = server
153+
tr1.ReturnCode = 0
154+
tr1.Processes.Default.StartBefore(ts2)
155+
tr1.Processes.Default.Streams.All.Content = Testers.Lambda(check_session)
156+
tr1.StillRunningAfter = server
128157

129-
tr = Test.AddTestRun("Disabled Session Cache")
130-
tr.Command = \
158+
tr2 = Test.AddTestRun("Disabled Session Cache")
159+
tr2.Command = \
131160
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_out {1} && ' \
161+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \
162+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \
163+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \
164+
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1} && ' \
132165
'echo -e "GET / HTTP/1.1\r\n" | openssl s_client -tls1_2 -connect 127.0.0.1:{0} -no_ticket -sess_in {1}' \
133166
.format(ts3.Variables.ssl_port, os.path.join(Test.RunDirectory, 'sess.dat'))
134-
tr.ReturnCode = 0
135-
tr.Processes.Default.StartBefore(ts3)
136-
tr.Processes.Default.Streams.All = Testers.ExcludesExpression('Reused', '')
167+
tr2.ReturnCode = 0
168+
tr2.Processes.Default.StartBefore(ts3)
169+
tr2.Processes.Default.Streams.All = Testers.ExcludesExpression('Reused', '')

0 commit comments

Comments
 (0)