From: Willy Tarreau Date: Wed, 2 Dec 2020 15:44:34 +0000 (+0100) Subject: REGTESTS: add a test for the threaded Lua code X-Git-Tag: v2.4-dev3~104 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc794b91f6dbff22ae63d6609b11f376965151b4;p=thirdparty%2Fhaproxy.git REGTESTS: add a test for the threaded Lua code This is simply txn_get_priv.vtc with the loading made using lua-load-per-thread, allowing all threads to run independently. There's nothing global nor thread-specific in this test, which makes an excellent example of something that should work out of the box. Four concurrent clients are initialized with 4 loops each so as to give a little chance to various threads to run concurrently. --- diff --git a/reg-tests/lua/txn_get_priv-thread.vtc b/reg-tests/lua/txn_get_priv-thread.vtc new file mode 100644 index 0000000000..77e333dcf1 --- /dev/null +++ b/reg-tests/lua/txn_get_priv-thread.vtc @@ -0,0 +1,67 @@ +varnishtest "Lua: txn:get_priv() scope" +#REQUIRE_OPTIONS=LUA,OPENSSL +#REQUIRE_VERSION=2.4 +#REGTEST_TYPE=bug + +feature ignore_unknown_macro + +haproxy h1 -conf { + global + lua-load-per-thread ${testdir}/txn_get_priv.lua + lua-load-per-thread ${testdir}/txn_get_priv-print_r.lua + + frontend fe1 + mode http + ${no-htx} option http-use-htx + bind "fd@${fe1}" + default_backend b1 + + frontend fe2 + mode http + ${no-htx} option http-use-htx + bind ":8443" ssl crt ${testdir}/common.pem + stats enable + stats uri / + + backend b1 + mode http + ${no-htx} option http-use-htx + http-request use-service lua.fakeserv +} -start + +client c0 -repeat 4 -connect ${h1_fe1_sock} { + txreq -url "/0" + rxresp + expect resp.status == 200 + txreq -url "/0" + rxresp + expect resp.status == 200 +} -run + +client c1 -repeat 4 -connect ${h1_fe1_sock} { + txreq -url "/1" + rxresp + expect resp.status == 200 + txreq -url "/1" + rxresp + expect resp.status == 200 +} -run + +client c2 -repeat 4 -connect ${h1_fe1_sock} { + txreq -url "/2" + rxresp + expect resp.status == 200 + txreq -url "/2" + rxresp + expect resp.status == 200 +} -run + +client c3 -repeat 4 -connect ${h1_fe1_sock} { + txreq -url "/3" + rxresp + expect resp.status == 200 + txreq -url "/3" + rxresp + expect resp.status == 200 +} -run +