-
Notifications
You must be signed in to change notification settings - Fork 363
/
t02001.vtc
158 lines (132 loc) · 3.44 KB
/
t02001.vtc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
varnishtest "H1->H2 Upgrade"
barrier b1 cond 2
server s1 {
rxreq
expect req.url == /noupgrade
expect req.http.host == foo.bar
txresp -status 400 -bodylen 10
} -start
varnish v1 -vcl+backend {} -start
varnish v1 -cliok "param.set feature -http2"
varnish v1 -cliok "param.set debug +syncvsl"
client c1 {
send "GET /noupgrade HTTP/1.1\r\n"
send "Host: foo.bar\r\n"
send "Upgrade: h2c\r\n"
send "HTTP2-Settings: AAMAAABkAAQAAP__\r\n"
send "\r\n"
rxresp
expect resp.status == 400
expect resp.bodylen == 10
} -run
server s1 {
rxreq
expect req.url == /upgrade1
expect req.http.host == foo.bar
expect req.bodylen == 4
txresp -status 401 -bodylen 8
rxreq
expect req.url == /upgrade2
expect req.http.host == foo.bar
barrier b1 sync
txresp -status 402 -bodylen 11
} -start
varnish v1 -vsl_catchup
varnish v1 -expect MEMPOOL.req0.live == 0
varnish v1 -expect MEMPOOL.req1.live == 0
varnish v1 -expect MEMPOOL.sess0.live == 0
varnish v1 -expect MEMPOOL.sess1.live == 0
varnish v1 -cliok "param.set feature +http2"
# We don't support upgrades with body
client c1 {
send "POST /upgrade1 HTTP/1.1\r\n"
send "Host: foo.bar\r\n"
send "Upgrade: h2c\r\n"
send "HTTP2-Settings: AAMAAABkAAQAAP__\r\n"
send "Content-Length: 4\r\n"
send "\r\n"
send "FOO\n"
rxresp
expect resp.status == 401
expect resp.bodylen == 8
} -run
varnish v1 -vsl_catchup
varnish v1 -expect MEMPOOL.req0.live == 0
varnish v1 -expect MEMPOOL.req1.live == 0
varnish v1 -expect MEMPOOL.sess0.live == 0
varnish v1 -expect MEMPOOL.sess1.live == 0
client c1 {
send "GET /upgrade2 HTTP/1.1\r\n"
send "Host: foo.bar\r\n"
send "Upgrade: h2c\r\n"
send "HTTP2-Settings: AAMAAABkAAQAAP__\r\n"
send "\r\n"
rxresp
expect resp.status == 101
expect resp.http.upgrade == h2c
expect resp.http.connection == Upgrade
txpri
stream 0 {
rxsettings
txsettings
txsettings -ack
rxsettings
expect settings.ack == true
} -run
barrier b1 sync
stream 1 {
rxresp
expect resp.status == 402
expect resp.bodylen == 11
} -run
} -run
varnish v1 -vsl_catchup
varnish v1 -expect MEMPOOL.req0.live == 0
varnish v1 -expect MEMPOOL.req1.live == 0
varnish v1 -expect MEMPOOL.sess0.live == 0
varnish v1 -expect MEMPOOL.sess1.live == 0
client c1 {
# Illegal HTTP2-Settings
send "GET /noupgrade HTTP/1.1\r\n"
send "Host: foo.bar\r\n"
send "Upgrade: h2c\r\n"
send "HTTP2-Settings: #######\r\n"
send "\r\n"
expect_close
} -run
varnish v1 -vsl_catchup
varnish v1 -expect MEMPOOL.req0.live == 0
varnish v1 -expect MEMPOOL.req1.live == 0
varnish v1 -expect MEMPOOL.sess0.live == 0
varnish v1 -expect MEMPOOL.sess1.live == 0
client c1 {
# PRISM with error in last bit
send "GET /noupgrade HTTP/1.1\r\n"
send "Host: foo.bar\r\n"
send "Upgrade: h2c\r\n"
send "HTTP2-Settings: AAMAAABkAAQAAP__\r\n"
send "\r\n"
rxresp
expect resp.status == 101
expect resp.http.upgrade == h2c
expect resp.http.connection == Upgrade
sendhex "505249202a20485454502f322e300d0a0d0a534d0d0a0d0b"
expect_close
} -run
varnish v1 -expect MEMPOOL.req0.live == 0
varnish v1 -expect MEMPOOL.req1.live == 0
varnish v1 -expect MEMPOOL.sess0.live == 0
varnish v1 -expect MEMPOOL.sess1.live == 0
client c1 {
# Missing HTTP2-Settings
send "GET /noupgrade HTTP/1.1\r\n"
send "Host: foo.bar\r\n"
send "Upgrade: h2c\r\n"
send "\r\n"
expect_close
} -run
varnish v1 -vsl_catchup
varnish v1 -expect MEMPOOL.req0.live == 0
varnish v1 -expect MEMPOOL.req1.live == 0
varnish v1 -expect MEMPOOL.sess0.live == 0
varnish v1 -expect MEMPOOL.sess1.live == 0