varnishtest "If-None-Match support"

#REQUIRE_VERSION=2.3

feature ignore_unknown_macro

server s1 {
       rxreq
       txresp -nolen -hdr "Transfer-Encoding: chunked" \
               -hdr "ETag: \"etag\""
       chunkedlen 1
       chunkedlen 1
       chunkedlen 2
       chunkedlen 3
       chunkedlen 5
       chunkedlen 8
       chunkedlen 13
       chunkedlen 21
       chunkedlen 34
       chunkedlen 55
       chunkedlen 89
       chunkedlen 144
       chunkedlen 233
       chunkedlen 0
} -start

haproxy h1 -conf {
       global
               # WT: limit false-positives causing "HTTP header incomplete" due to
               # idle server connections being randomly used and randomly expiring
               # under us.
               tune.idle-pool.shared off

       defaults
               mode http
               ${no-htx} option http-use-htx
               timeout connect 1s
               timeout client  1s
               timeout server  1s

       frontend fe
               bind "fd@${fe}"
               default_backend test

       backend test
               http-request cache-use my_cache
               server www ${s1_addr}:${s1_port}
               http-response cache-store my_cache

               # Remove Transfer-Encoding header because of a vtest issue with
               # 304-Not-Modified responses
               http-after-response del-header transfer-encoding if { status eq 304 }

       cache my_cache
               total-max-size 3
               max-age 20
               max-object-size 3072
} -start


client c1 -connect ${h1_fe_sock} {
       txreq
       rxresp
       expect resp.status == 200
       expect resp.bodylen == 609
       txreq
       rxresp
       expect resp.status == 200
       expect resp.bodylen == 609
       txreq \
               -hdr "if-none-match: *"
       rxresp
       expect resp.status == 304
       txreq \
               -hdr "if-none-match: \"etag\""
       rxresp
       expect resp.status == 304
       txreq \
               -hdr "if-none-match: W/\"etag\""
       rxresp
       expect resp.status == 304
} -run

client c2 -connect ${h1_fe_sock} {
       txreq \
               -hdr "if-none-match: \"wrong_etag\""
       rxresp
       expect resp.status == 200
       expect resp.bodylen == 609
       txreq \
               -hdr "if-none-match: W/\"wrong_etag\", W/\"etag\""
       rxresp
       expect resp.status == 304
} -run
