mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-21 22:45:34 +00:00
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_port = 0
|
||||||
|
local vtc_port2 = 0
|
||||||
|
|
||||||
core.register_service("fakeserv", "http", function(applet)
|
core.register_service("fakeserv", "http", function(applet)
|
||||||
vtc_port = applet.headers["vtcport"][0]
|
vtc_port = applet.headers["vtcport"][0]
|
||||||
|
vtc_port2 = applet.headers["vtcport2"][0]
|
||||||
core.Info("APPLET START")
|
core.Info("APPLET START")
|
||||||
local response = "OK"
|
local response = "OK"
|
||||||
applet:add_header("Server", "haproxy/webstats")
|
applet:add_header("Server", "haproxy/webstats")
|
||||||
@ -22,14 +24,20 @@ local function cron()
|
|||||||
|
|
||||||
local body = ""
|
local body = ""
|
||||||
|
|
||||||
for i = 0, 200 do
|
for i = 0, 2000 do
|
||||||
body = body .. i .. ' ABCDEFGHIJKLMNOPQRSTUVWXYZ\n'
|
body = body .. i .. ' ABCDEFGHIJKLMNOPQRSTUVWXYZ\n'
|
||||||
end
|
end
|
||||||
|
core.Info("First httpclient request")
|
||||||
local httpclient = core.httpclient()
|
local httpclient = core.httpclient()
|
||||||
local response = httpclient:post{url="http://127.0.0.1:" .. vtc_port, body=body}
|
local response = httpclient:post{url="http://127.0.0.1:" .. vtc_port, body=body}
|
||||||
|
|
||||||
core.Info("Received: " .. response.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
|
end
|
||||||
|
|
||||||
core.register_task(cron)
|
core.register_task(cron)
|
||||||
|
@ -1,4 +1,12 @@
|
|||||||
varnishtest "Lua: check httpclient functionality from a lua-task"
|
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 cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev7)'"
|
||||||
feature ignore_unknown_macro
|
feature ignore_unknown_macro
|
||||||
|
|
||||||
@ -6,7 +14,14 @@ feature ignore_unknown_macro
|
|||||||
|
|
||||||
server s1 {
|
server s1 {
|
||||||
rxreq
|
rxreq
|
||||||
txresp -bodylen 20
|
txresp -bodylen 200
|
||||||
|
expect req.body ~ ".*2000 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
} -start
|
||||||
|
|
||||||
|
server s2 {
|
||||||
|
rxreq
|
||||||
|
txresp
|
||||||
|
expect req.bodylen == 200
|
||||||
} -start
|
} -start
|
||||||
|
|
||||||
haproxy h1 -conf {
|
haproxy h1 -conf {
|
||||||
@ -25,10 +40,11 @@ haproxy h1 -conf {
|
|||||||
} -start
|
} -start
|
||||||
|
|
||||||
client c0 -connect ${h1_fe1_sock} {
|
client c0 -connect ${h1_fe1_sock} {
|
||||||
txreq -url "/" -hdr "vtcport: ${s1_port}"
|
txreq -url "/" -hdr "vtcport: ${s1_port}" -hdr "vtcport2: ${s2_port}"
|
||||||
rxresp
|
rxresp
|
||||||
expect resp.status == 200
|
expect resp.status == 200
|
||||||
} -run
|
} -run
|
||||||
|
|
||||||
|
|
||||||
server s1 -wait
|
server s1 -wait
|
||||||
|
server s2 -wait
|
||||||
|
Loading…
Reference in New Issue
Block a user