varnishtest "be2dec converter Test"

feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev0)'"
feature ignore_unknown_macro

server s1 {
	rxreq
	txresp -hdr "Connection: close"
} -repeat 3 -start

haproxy h1 -conf {
    global
    .if feature(THREAD)
        thread-groups 1
    .endif

    defaults
	mode http
	timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
	timeout client  "${HAPROXY_TEST_TIMEOUT-5s}"
	timeout server  "${HAPROXY_TEST_TIMEOUT-5s}"

    frontend fe
	bind "fd@${fe}"

	#### requests
	http-request  set-var(txn.input) req.hdr(input)

	http-response set-header be2dec-1   "%[var(txn.input),be2dec(:,1)]"
	http-response set-header be2dec-2   "%[var(txn.input),be2dec(-,3)]"
	http-response set-header be2dec-3   "%[var(txn.input),be2dec(::,3,1)]"

	default_backend be

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

client c1 -connect ${h1_fe_sock} {
	txreq -url "/" \
	  -hdr "input:"
	rxresp
	expect resp.status == 200
	expect resp.http.be2dec-1 == ""
	expect resp.http.be2dec-2 == ""
	expect resp.http.be2dec-3 == ""
	txreq -url "/" \
	  -hdr "input: 0123456789"
	rxresp
	expect resp.status == 200
	expect resp.http.be2dec-1 == "48:49:50:51:52:53:54:55:56:57"
	expect resp.http.be2dec-2 == "3158322-3355701-3553080-57"
	expect resp.http.be2dec-3 == "3158322::3355701::3553080"
	txreq -url "/" \
	  -hdr "input: abcdefghijklmnopqrstuvwxyz"
	rxresp
	expect resp.status == 200
	expect resp.http.be2dec-1 == "97:98:99:100:101:102:103:104:105:106:107:108:109:110:111:112:113:114:115:116:117:118:119:120:121:122"
	expect resp.http.be2dec-2 == "6382179-6579558-6776937-6974316-7171695-7369074-7566453-7763832-31098"
	expect resp.http.be2dec-3 == "6382179::6579558::6776937::6974316::7171695::7369074::7566453::7763832"
} -run
