blob: 7c55d54bf331eb76abdc5a3ad86023f3312c9f96 [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
52} -start
53
54client c0 -connect ${h1_fe1_sock} {
William Lallemandf03b53c2021-11-24 15:38:17 +010055 txreq -url "/" -hdr "vtcport: ${s1_port}" -hdr "vtcport2: ${s2_port}" -hdr "vtcport3: ${s3_port}"
William Lallemand039cc082021-09-24 19:02:50 +020056 rxresp
57 expect resp.status == 200
58} -run
59
60
61server s1 -wait
William Lallemand207f0cb2021-10-28 15:57:33 +020062server s2 -wait
William Lallemandf03b53c2021-11-24 15:38:17 +010063server s3 -wait