REGTESTS: lua: test httpclient with body streaming
Improve the httpclient reg-tests to test the streaming, The regtest now sends a big payload to vtest, then receive a payload from vtest and send it again.
This commit is contained in:
parent
bd5739e93e
commit
207f0cb3be
|
@ -1,8 +1,10 @@
|
|||
|
||||
local vtc_port = 0
|
||||
local vtc_port2 = 0
|
||||
|
||||
core.register_service("fakeserv", "http", function(applet)
|
||||
vtc_port = applet.headers["vtcport"][0]
|
||||
vtc_port2 = applet.headers["vtcport2"][0]
|
||||
core.Info("APPLET START")
|
||||
local response = "OK"
|
||||
applet:add_header("Server", "haproxy/webstats")
|
||||
|
@ -22,14 +24,20 @@ local function cron()
|
|||
|
||||
local body = ""
|
||||
|
||||
for i = 0, 200 do
|
||||
for i = 0, 2000 do
|
||||
body = body .. i .. ' ABCDEFGHIJKLMNOPQRSTUVWXYZ\n'
|
||||
end
|
||||
|
||||
core.Info("First httpclient request")
|
||||
local httpclient = core.httpclient()
|
||||
local response = httpclient:post{url="http://127.0.0.1:" .. vtc_port, body=body}
|
||||
|
||||
core.Info("Received: " .. response.body)
|
||||
|
||||
body = response.body
|
||||
|
||||
core.Info("Second httpclient request")
|
||||
local httpclient2 = core.httpclient()
|
||||
local response2 = httpclient2:post{url="http://127.0.0.1:" .. vtc_port2, body=body}
|
||||
|
||||
end
|
||||
|
||||
core.register_task(cron)
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
varnishtest "Lua: check httpclient functionality from a lua-task"
|
||||
|
||||
# A request if first made with c0 with the port of s1 and s2 so the httpclient
|
||||
# can generate its URI with it.
|
||||
#
|
||||
# This reg-test sends a payload with the httpclient to s1, s1 returns another
|
||||
# payload. The 2nd lua httpclient sends back the payload from s1 to s2.
|
||||
#
|
||||
|
||||
feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev7)'"
|
||||
feature ignore_unknown_macro
|
||||
|
||||
|
@ -6,7 +14,14 @@ feature ignore_unknown_macro
|
|||
|
||||
server s1 {
|
||||
rxreq
|
||||
txresp -bodylen 20
|
||||
txresp -bodylen 200
|
||||
expect req.body ~ ".*2000 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
} -start
|
||||
|
||||
server s2 {
|
||||
rxreq
|
||||
txresp
|
||||
expect req.bodylen == 200
|
||||
} -start
|
||||
|
||||
haproxy h1 -conf {
|
||||
|
@ -25,10 +40,11 @@ haproxy h1 -conf {
|
|||
} -start
|
||||
|
||||
client c0 -connect ${h1_fe1_sock} {
|
||||
txreq -url "/" -hdr "vtcport: ${s1_port}"
|
||||
txreq -url "/" -hdr "vtcport: ${s1_port}" -hdr "vtcport2: ${s2_port}"
|
||||
rxresp
|
||||
expect resp.status == 200
|
||||
} -run
|
||||
|
||||
|
||||
server s1 -wait
|
||||
server s2 -wait
|
||||
|
|
Loading…
Reference in New Issue