#commit 271022150d7961b9aa39dbfd88e0c6a4bc48c3ee
#    BUG/MINOR: map: fix map_regm with backref
#
#    Due to a cascade of get_trash_chunk calls the sample is
#    corrupted when we want to read it.
#
#    The fix consist to use a temporary chunk to copy the sample
#    value and use it.

varnishtest "map_regm get_trash_chunk test"
feature ignore_unknown_macro

#REQUIRE_VERSION=1.6
#REGTEST_TYPE=bug

syslog S1 -level notice {
    recv
    expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy (fe|be)1 started."
    recv
    expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy (fe|be)1 started."
    recv info
    # not expecting ${h1_pid} with master-worker
    expect ~ "[^:\\[ ]\\[[[:digit:]]+\\]: .* fe1 be1/s1 [[:digit:]]+/[[:digit:]]+/[[:digit:]]+/[[:digit:]]+/[[:digit:]]+ 200 [[:digit:]]+ - - ---- .* \"GET / HTTP/(1|2)(\\.1)?\""
} -start

server s1 {
   rxreq
   expect req.method == "GET"
   expect req.http.x-mapped-from-header == example_AND_org
   expect req.http.x-mapped-from-var == example_AND_org
   txresp

   rxreq
   expect req.method == "GET"
   expect req.http.x-mapped-from-header == www.example_AND_org
   expect req.http.x-mapped-from-var == www.example_AND_org
   txresp
} -start

haproxy h1 -conf {
  global
    log ${S1_addr}:${S1_port} local0 debug err

  defaults
    mode http
    ${no-htx} option http-use-htx
    log global
    option httplog
    timeout connect         15ms
    timeout client          20ms
    timeout server          20ms

  frontend fe1
    bind "fd@${fe1}"
    # Remove port from Host header
    http-request replace-value Host '(.*):.*' '\1'
    # Store host header in variable
    http-request set-var(txn.host) req.hdr(Host)
    # This works correctly
    http-request set-header X-Mapped-From-Header %[req.hdr(Host),map_regm(${testdir}/map_regm_with_backref.map,"unknown")]
    # This breaks before commit 271022150d7961b9aa39dbfd88e0c6a4bc48c3ee
    http-request set-header X-Mapped-From-Var %[var(txn.host),map_regm(${testdir}/map_regm_with_backref.map,"unknown")]

    default_backend be1

    backend be1
    server s1 ${s1_addr}:${s1_port}
} -start

client c1 -connect ${h1_fe1_sock} {
    txreq -hdr "Host: example.org:8443"
    rxresp
    expect resp.status == 200

    txreq -hdr "Host: www.example.org"
    rxresp
    expect resp.status == 200
} -run

