mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-17 00:44:33 +00:00
19490907b3
This adds "balance-rr" to test round robin, "balance-uri" to test the default balance-uri method, and "balance-uri-path-only" which mixes H1 and H2 through "balance uri path-only" and verifies that they reach the same server. Note that for the latter, "proto h2" explicitly had to be placed on the listening socket otherwise it would timeout. This may indicate an issue in the H1->H2 upgrade depending how the H2 preface is sent maybe.
75 lines
1.4 KiB
Plaintext
75 lines
1.4 KiB
Plaintext
vtest "Test for balance URI"
|
|
feature ignore_unknown_macro
|
|
#REQUIRE_VERSION=2.0
|
|
|
|
server s1 {
|
|
rxreq
|
|
txresp -hdr "Server: s1"
|
|
} -repeat 2 -start
|
|
|
|
server s2 {
|
|
rxreq
|
|
txresp -hdr "Server: s2"
|
|
} -repeat 2 -start
|
|
|
|
server s3 {
|
|
rxreq
|
|
txresp -hdr "Server: s3"
|
|
} -repeat 2 -start
|
|
|
|
server s4 {
|
|
rxreq
|
|
txresp -hdr "Server: s4"
|
|
} -repeat 2 -start
|
|
|
|
haproxy h1 -arg "-L A" -conf {
|
|
defaults
|
|
mode http
|
|
timeout server 1s
|
|
timeout connect 1s
|
|
timeout client 1s
|
|
|
|
listen px
|
|
bind "fd@${px}"
|
|
balance uri
|
|
server srv1 ${s1_addr}:${s1_port}
|
|
server srv2 ${s2_addr}:${s2_port}
|
|
server srv3 ${s3_addr}:${s3_port}
|
|
server srv4 ${s4_addr}:${s4_port}
|
|
} -start
|
|
|
|
client c1 -connect ${h1_px_sock} {
|
|
txreq -url "/url1"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.Server ~ s2
|
|
} -run
|
|
|
|
client c2 -connect ${h1_px_sock} {
|
|
txreq -url "/url1?ignore=this-arg"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.Server ~ s2
|
|
} -run
|
|
|
|
client c3 -connect ${h1_px_sock} {
|
|
txreq -url "/url2"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.Server ~ s3
|
|
} -run
|
|
|
|
client c4 -connect ${h1_px_sock} {
|
|
txreq -url "/url3"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.Server ~ s4
|
|
} -run
|
|
|
|
client c5 -connect ${h1_px_sock} {
|
|
txreq -url "/url4"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.Server ~ s1
|
|
} -run
|