# This config file aims to trigger all error detection cases in the sample
# fetch expression parser related to the fetch arguments.

# silence some warnings
defaults
	mode http
	timeout client 1s
	timeout server 1s
	timeout connect 1s

frontend 1
	bind :10000

	# missing fetch method
	http-request add-header name %[(arg)]

	# unknown fetch method 'blah'
	http-request add-header name %[blah(arg)]

	# missing closing ')' after arguments to fetch keyword 'req.hdr'
	http-request add-header name %[req.hdr(]

	# cannot be triggerred : "returns type of fetch method '%s' is unknown"

	# fetch method 'always_true' : no argument supported, but got 'arg'
	http-request add-header name %[always_true(arg)]

	# fetch method 'req.hdr' : failed to parse 'a' as 'signed integer' at position 2
	http-request add-header name %[req.hdr(a,a)]

	# invalid args in fetch method 'payload_lv' : payload length must be > 0
	http-request add-header name %[payload_lv(0,0)]

	# fetch method 'payload_lv' : expected type 'unsigned integer' at position 1, but got nothing
	http-request add-header name %[payload_lv]

