# 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 triggered : "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]

