REGTEST: add missing lua requirements on server removal test
The test that removes server via CLI is using LUA to check that servers
referenced in a LUA script cannot be removed. This requires LUA support
to be built in haproxy.
Split the test and create a new one containing only the LUA relevant
test. Mark it as LUA dependant.
diff --git a/reg-tests/server/cli_delete_server.vtc b/reg-tests/server/cli_delete_server.vtc
index d752d6f..7487fc7 100644
--- a/reg-tests/server/cli_delete_server.vtc
+++ b/reg-tests/server/cli_delete_server.vtc
@@ -7,15 +7,7 @@
#REQUIRE_VERSION=2.4
-server s1 {
- rxreq
- txresp
-} -start
-
haproxy h1 -conf {
- global
- lua-load ${testdir}/get_srv_stats.lua
-
defaults
mode http
timeout connect 1s
@@ -28,13 +20,11 @@
default_backend test
backend test
- http-request add-header s4-stats %[lua.get_srv_stats(s4)]
use-server s3 unless { always_false }
server s1 ${s1_addr}:${s1_port} # referenced in ACL
server s2 ${s1_addr}:${s1_port} check # referenced in track
server s3 ${s1_addr}:${s1_port} track s2 # referenced in use-server
- server s4 ${s1_addr}:${s1_port} # referenced in lua script
- server s5 ${s1_addr}:${s1_port} # removable server
+ server s4 ${s1_addr}:${s1_port} # removable server
} -start
haproxy h1 -cli {
@@ -61,26 +51,15 @@
# tracked server
send "experimental-mode on; del server test/s3"
expect ~ "This server cannot be removed at runtime due to other configuration elements pointing to it."
-}
-
-# make a request to force the execution of the lua script which references a
-# server
-client c1 -connect ${h1_feS_sock} {
- txreq
- rxresp
-} -run
-haproxy h1 -cli {
+ # server in running mode
send "experimental-mode on; del server test/s4"
- expect ~ "This server cannot be removed at runtime due to other configuration elements pointing to it."
-
- send "experimental-mode on; del server test/s5"
expect ~ "Only servers in maintenance mode can be deleted."
- send "disable server test/s5"
+ send "disable server test/s4"
expect ~ ".*"
# valid command
- send "experimental-mode on; del server test/s5"
+ send "experimental-mode on; del server test/s4"
expect ~ "Server deleted."
}
diff --git a/reg-tests/server/cli_delete_server_lua.vtc b/reg-tests/server/cli_delete_server_lua.vtc
new file mode 100644
index 0000000..ab4200f
--- /dev/null
+++ b/reg-tests/server/cli_delete_server_lua.vtc
@@ -0,0 +1,44 @@
+# This script is to check that servers that are referenced by a lua script
+# cannot be removed at runtime.
+varnishtest "Delete lua server via cli"
+
+feature ignore_unknown_macro
+
+#REQUIRE_VERSION=2.5
+#REQUIRE_OPTIONS=LUA
+
+server s1 {
+ rxreq
+ txresp
+} -start
+
+haproxy h1 -conf {
+ global
+ lua-load ${testdir}/get_srv_stats.lua
+
+ defaults
+ mode http
+ timeout connect 1s
+ timeout client 1s
+ timeout server 1s
+
+ frontend fe
+ bind "fd@${feS}"
+ default_backend test
+
+ backend test
+ http-request add-header s1-stats %[lua.get_srv_stats(s1)]
+ server s1 ${s1_addr}:${s1_port} # referenced in lua script
+} -start
+
+# make a request to force the execution of the lua script which references a
+# server
+client c1 -connect ${h1_feS_sock} {
+ txreq
+ rxresp
+} -run
+
+haproxy h1 -cli {
+ send "experimental-mode on; del server test/s1"
+ expect ~ "This server cannot be removed at runtime due to other configuration elements pointing to it."
+}