blob: 0850ddb5f3f21cf846540c82fe79955d0be0de02 [file] [log] [blame]
William Lallemand039cc082021-09-24 19:02:50 +02001varnishtest "Lua: check httpclient functionality from a lua-task"
William Lallemand207f0cb2021-10-28 15:57:33 +02002
3# A request if first made with c0 with the port of s1 and s2 so the httpclient
4# can generate its URI with it.
5#
6# This reg-test sends a payload with the httpclient to s1, s1 returns another
7# payload. The 2nd lua httpclient sends back the payload from s1 to s2.
8#
9
William Lallemand039cc082021-09-24 19:02:50 +020010feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev7)'"
11feature ignore_unknown_macro
12
13#REQUIRE_OPTIONS=LUA
14
15server s1 {
16 rxreq
William Lallemandd19d7762021-11-10 17:40:19 +010017 txresp -bodylen 54000
18 expect req.body ~ ".*0 ABCDEFGHIJKLMNOPQRSTUVWXYZ.*"
19 expect req.body ~ ".*500 ABCDEFGHIJKLMNOPQRSTUVWXYZ.*"
20 expect req.body ~ ".*1000 ABCDEFGHIJKLMNOPQRSTUVWXYZ.*"
21 expect req.body ~ ".*1500 ABCDEFGHIJKLMNOPQRSTUVWXYZ.*"
William Lallemand207f0cb2021-10-28 15:57:33 +020022 expect req.body ~ ".*2000 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
William Lallemand039cc082021-09-24 19:02:50 +020023} -start
24
William Lallemand207f0cb2021-10-28 15:57:33 +020025server s2 {
26 rxreq
27 txresp
William Lallemandd19d7762021-11-10 17:40:19 +010028 expect req.bodylen == 54000
William Lallemand207f0cb2021-10-28 15:57:33 +020029} -start
30
William Lallemandf03b53c2021-11-24 15:38:17 +010031server s3 {
32 rxreq
33 txresp -bodylen 54000
34 expect req.method == "GET"
35 expect req.http.host == "foobar.haproxy.local"
36} -start
37
38
William Lallemand039cc082021-09-24 19:02:50 +020039haproxy h1 -conf {
40 global
41 lua-load ${testdir}/lua_httpclient.lua
42
43 frontend fe1
44 mode http
45 bind "fd@${fe1}"
46 default_backend b1
47
48 backend b1
49 mode http
50 http-request use-service lua.fakeserv
51
William Lallemand4f4f2b72022-02-17 20:00:23 +010052 listen li1
53 mode http
54 bind unix@${testdir}/srv3
55 server srv3 ${s3_addr}:${s3_port}
56
William Lallemand039cc082021-09-24 19:02:50 +020057} -start
58
59client c0 -connect ${h1_fe1_sock} {
William Lallemand4f4f2b72022-02-17 20:00:23 +010060 txreq -url "/" -hdr "vtcport: ${s1_port}" -hdr "vtcport2: ${s2_port}" -hdr "vtcport3: unix@${testdir}/srv3"
William Lallemand039cc082021-09-24 19:02:50 +020061 rxresp
62 expect resp.status == 200
63} -run
64
65
66server s1 -wait
William Lallemand207f0cb2021-10-28 15:57:33 +020067server s2 -wait
William Lallemandf03b53c2021-11-24 15:38:17 +010068server s3 -wait