mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-16 10:36:55 +00:00
REGTESTS: add a test to ensure map-ordering is preserved
As shown in "BUG/MINOR: map: list-based matching potential ordering regression", list-based matching types such as dom are affected by the order in which elements are loaded from the map. Since this is historical behavior and existing usages depend on it, we add a test to prevent future regressions.
This commit is contained in:
parent
b546bb6d67
commit
1088f0b969
4
reg-tests/http-rules/map_ordering.map
Normal file
4
reg-tests/http-rules/map_ordering.map
Normal file
@ -0,0 +1,4 @@
|
||||
# These entries are used for list-based match ordering tests
|
||||
first.domain.tld first
|
||||
domain.tld domain
|
||||
second.domain.tld second
|
32
reg-tests/http-rules/map_ordering.vtc
Normal file
32
reg-tests/http-rules/map_ordering.vtc
Normal file
@ -0,0 +1,32 @@
|
||||
varnishtest "Test list-based matching types ordering"
|
||||
feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev0)'"
|
||||
feature ignore_unknown_macro
|
||||
|
||||
haproxy h1 -conf {
|
||||
defaults
|
||||
mode http
|
||||
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
||||
|
||||
frontend fe1
|
||||
bind "fd@${fe1}"
|
||||
|
||||
# check list ordering using map_dom (list-based match)
|
||||
http-request return hdr dom %[req.hdr(Host),lower,map_dom(${testdir}/map_ordering.map)] if { url_beg /dom }
|
||||
} -start
|
||||
|
||||
# Check map ordering
|
||||
client c1 -connect ${h1_fe1_sock} {
|
||||
# first.domain.tld is above domain.tld so it should match first
|
||||
txreq -url "/dom" -hdr "Host: first.domain.tld"
|
||||
rxresp
|
||||
expect resp.status == 200
|
||||
expect resp.http.dom == "first"
|
||||
|
||||
# second.domain.tld is below domain.tld so domain.tld should match first
|
||||
txreq -url "/dom" -hdr "Host: second.domain.tld"
|
||||
rxresp
|
||||
expect resp.status == 200
|
||||
expect resp.http.dom == "domain"
|
||||
} -run
|
Loading…
Reference in New Issue
Block a user