mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-08 18:36:18 -04:00
Ensure that all Lua regression tests exercise the restricted library mode by setting "tune.lua.openlibs none" in their global section.
97 lines
2.2 KiB
Text
97 lines
2.2 KiB
Text
varnishtest "Lua: set_var"
|
|
#REQUIRE_OPTIONS=LUA
|
|
|
|
feature ignore_unknown_macro
|
|
|
|
haproxy h1 -conf {
|
|
global
|
|
.if feature(THREAD)
|
|
thread-groups 1
|
|
.endif
|
|
|
|
# WT: limit false-positives causing "HTTP header incomplete" due to
|
|
# idle server connections being randomly used and randomly expiring
|
|
# under us.
|
|
tune.idle-pool.shared off
|
|
|
|
global
|
|
.if feature(THREAD)
|
|
thread-groups 1
|
|
.endif
|
|
|
|
tune.lua.openlibs none
|
|
tune.lua.bool-sample-conversion normal
|
|
lua-load ${testdir}/set_var.lua
|
|
|
|
defaults
|
|
timeout client 30s
|
|
timeout server 30s
|
|
timeout connect 30s
|
|
|
|
frontend fe1
|
|
mode http
|
|
bind "fd@${fe1}"
|
|
|
|
http-request use-service lua.set_var
|
|
|
|
frontend fe2
|
|
mode http
|
|
bind "fd@${fe2}"
|
|
# just make sure the variable exists
|
|
http-request set-header Dummy %[var(proc.fe2_foo)]
|
|
|
|
http-request use-service lua.set_var_ifexist
|
|
} -start
|
|
|
|
client c0 -connect ${h1_fe1_sock} {
|
|
# create var
|
|
txreq -url "/" \
|
|
-hdr "Var: txn.fe1_foo"
|
|
rxresp
|
|
expect resp.status == 202
|
|
expect resp.http.echo == "value"
|
|
|
|
# rewrite var
|
|
txreq -url "/" \
|
|
-hdr "Var: txn.fe1_foo"
|
|
rxresp
|
|
expect resp.status == 202
|
|
expect resp.http.echo == "value"
|
|
|
|
# create var under scope "proc"
|
|
txreq -url "/" \
|
|
-hdr "Var: proc.fe1_foo"
|
|
rxresp
|
|
expect resp.status == 202
|
|
expect resp.http.echo == "value"
|
|
|
|
# fail to create bad scope
|
|
txreq -url "/" \
|
|
-hdr "Var: invalid.var"
|
|
rxresp
|
|
expect resp.status == 400
|
|
expect resp.http.echo == "(nil)"
|
|
} -run
|
|
|
|
client c1 -connect ${h1_fe2_sock} {
|
|
# this one exists in the conf, it must succeed
|
|
txreq -url "/" \
|
|
-hdr "Var: proc.fe2_foo"
|
|
rxresp
|
|
expect resp.status == 202
|
|
expect resp.http.echo == "value"
|
|
|
|
# this one does not exist in the conf, it must fail
|
|
txreq -url "/" \
|
|
-hdr "Var: proc.fe2_bar"
|
|
rxresp
|
|
expect resp.status == 400
|
|
expect resp.http.echo == "(nil)"
|
|
|
|
# this one is under txn, it must succeed
|
|
txreq -url "/" \
|
|
-hdr "Var: txn.fe2_foo"
|
|
rxresp
|
|
expect resp.status == 202
|
|
expect resp.http.echo == "value"
|
|
} -run
|