REGTESTS: httpclient/lua: test the lua task timeout with the httpclient

Test the httpclient when the lua action timeout. The lua timeout is
reached before the httpclient is ended. This test that the httpclient
are correctly cleaned when destroying the hlua context.

Must be backported as far as 2.5.
This commit is contained in:
William Lallemand 2022-10-20 11:23:02 +02:00
parent a93eac41f0
commit 4ed0a3a883
2 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,8 @@
function test()
local httpclient = core.httpclient()
local response = httpclient:get{url="http://127.0.0.1", headers={ [ "Host" ] = { "localhost" } }}
end
core.register_action("test", {"tcp-req"}, test, 0)

View File

@ -0,0 +1,39 @@
varnishtest "Lua: test the httpclient when the lua action timeout"
#
# Start an httpclient from "lua.test" whose lua task will expire before the
# httpclient is ended.
feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev7)'"
feature ignore_unknown_macro
#REQUIRE_OPTIONS=LUA
haproxy h1 -conf {
global
lua-load ${testdir}/httpclient_action.lua
defaults
mode tcp
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout check 10s
listen li1
mode http
bind "fd@${fe1}"
tcp-request inspect-delay 10ms
tcp-request content lua.test
http-request return status 503
} -start
client c0 -connect ${h1_fe1_sock} {
txreq
rxresp
expect resp.status == 503
} -run