varnishtest "Check that the unique ID TLV is properly sent"

#REQUIRE_VERSION=2.2

feature ignore_unknown_macro

haproxy h1 -conf {
    defaults
        mode http
        log global
        unique-id-format %{+X}o\ TEST-%[req.hdr(in)]

    listen sender
        bind "fd@${feS}"

        unique-id-header unique_id

        server example ${h1_feR_addr}:${h1_feR_port} send-proxy-v2 proxy-v2-options unique-id

    listen receiver
        bind "fd@${feR}" accept-proxy

        http-request set-var(txn.http_unique_id) req.hdr(unique_id)
        http-request set-var(txn.proxy_unique_id) fc_pp_unique_id
        http-after-response set-header http_unique_id %[var(txn.http_unique_id)]
        http-after-response set-header proxy_unique_id %[var(txn.proxy_unique_id)]
        http-request return status 200
} -start

# Validate that a correct header passes
client c1 -connect ${h1_feS_sock} {
    txreq -url "/" \
        -hdr "in: foo"
    rxresp
    expect resp.http.http_unique_id == "TEST-foo"
    expect resp.http.proxy_unique_id == "TEST-foo"
    txreq -url "/" \
        -hdr "in: bar"
    rxresp
    expect resp.http.http_unique_id == "TEST-bar"
    expect resp.http.proxy_unique_id == "TEST-foo"
} -run
