haproxy/reg-tests/http-errorfiles/http_errors.vtc
Christopher Faulet a5afb0bf36 REGEST: Add reg tests about error files
2 reg tests are added. The first one ensures the declaration of errors in a
proxy is fonctionnal. It declares http-errors sections and declare error files
using the errorfile and the errorfiles directives, both in the default section
and the frontend sections. The second one ensures it is possible to use a custom
error file for an HTTP deny rule.
2020-01-20 15:19:55 +01:00

135 lines
3.9 KiB
Plaintext

varnishtest "Test the errorfiles directive"
#REQUIRE_VERSION=2.2
# This config tests the errorfiles directive.
feature ignore_unknown_macro
haproxy h1 -conf {
http-errors errors-1
errorfile 400 ${testdir}/errors/400-1.http
errorfile 403 ${testdir}/errors/403-1.http
errorfile 404 ${testdir}/errors/404-1.http
errorfile 500 ${testdir}/errors/500-1.http
http-errors errors-2
errorfile 400 ${testdir}/errors/400-2.http
errorfile 403 ${testdir}/errors/403-2.http
errorfile 404 ${testdir}/errors/404-2.http
http-errors errors-3
errorfile 400 ${testdir}/errors/400-3.http
errorfile 404 ${testdir}/errors/404-3.http
defaults
mode http
timeout connect 1s
timeout client 1s
timeout server 1s
errorfiles errors-2
errorfile 400 ${testdir}/errors/400.http
errorfile 404 ${testdir}/errors/404.http
frontend fe1
bind "fd@${fe1}"
http-request deny deny_status 400 if { path /400 }
http-request deny deny_status 403 if { path /403 }
http-request deny deny_status 404 if { path /404 }
http-request deny deny_status 500 if { path /500 }
frontend fe2
bind "fd@${fe2}"
errorfiles errors-1
errorfile 500 ${testdir}/errors/500.http
http-request deny deny_status 400 if { path /400 }
http-request deny deny_status 403 if { path /403 }
http-request deny deny_status 404 if { path /404 }
http-request deny deny_status 500 if { path /500 }
frontend fe3
bind "fd@${fe3}"
errorfile 500 ${testdir}/errors/500.http
errorfiles errors-1 500
errorfiles errors-3 400
http-request deny deny_status 400 if { path /400 }
http-request deny deny_status 403 if { path /403 }
http-request deny deny_status 404 if { path /404 }
http-request deny deny_status 500 if { path /500 }
} -start
client c1r1 -connect ${h1_fe1_sock} {
txreq -req GET -url /400
rxresp
expect resp.status == 400
expect resp.http.x-err-type == "default"
} -run
client c1r2 -connect ${h1_fe1_sock} {
txreq -req GET -url /403
rxresp
expect resp.status == 403
expect resp.http.x-err-type == "errors-2"
} -run
client c1r3 -connect ${h1_fe1_sock} {
txreq -req GET -url /404
rxresp
expect resp.status == 404
expect resp.http.x-err-type == "default"
} -run
client c1r4 -connect ${h1_fe1_sock} {
txreq -req GET -url /500
rxresp
expect resp.status == 500
expect resp.http.x-err-type == <undef>
} -run
client c2r1 -connect ${h1_fe2_sock} {
txreq -req GET -url /400
rxresp
expect resp.status == 400
expect resp.http.x-err-type == "errors-1"
} -run
client c2r2 -connect ${h1_fe2_sock} {
txreq -req GET -url /403
rxresp
expect resp.status == 403
expect resp.http.x-err-type == "errors-1"
} -run
client c2r3 -connect ${h1_fe2_sock} {
txreq -req GET -url /404
rxresp
expect resp.status == 404
expect resp.http.x-err-type == "errors-1"
} -run
client c2r4 -connect ${h1_fe2_sock} {
txreq -req GET -url /500
rxresp
expect resp.status == 500
expect resp.http.x-err-type == "default"
} -run
client c3r1 -connect ${h1_fe3_sock} {
txreq -req GET -url /400
rxresp
expect resp.status == 400
expect resp.http.x-err-type == "errors-3"
} -run
client c3r2 -connect ${h1_fe3_sock} {
txreq -req GET -url /403
rxresp
expect resp.status == 403
expect resp.http.x-err-type == "errors-2"
} -run
client c3r3 -connect ${h1_fe3_sock} {
txreq -req GET -url /404
rxresp
expect resp.status == 404
expect resp.http.x-err-type == "default"
} -run
client c3r4 -connect ${h1_fe3_sock} {
txreq -req GET -url /500
rxresp
expect resp.status == 500
expect resp.http.x-err-type == "errors-1"
} -run