vtest "Basic test for peers protocol over SSL/TLS" #REQUIRE_OPTIONS=OPENSSL #REQUIRE_VERSION=2.0 feature ignore_unknown_macro #REGTEST_TYPE=slow haproxy h1 -arg "-L A" -conf { defaults timeout client "${HAPROXY_TEST_TIMEOUT-5s}" timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" timeout server "${HAPROXY_TEST_TIMEOUT-5s}" backend stkt stick-table type string size 10m store server_id,gpc0,conn_cur,conn_rate(50000) peers peers peers peers default-server ssl crt ${testdir}/common.pem verify none bind "fd@${A}" ssl crt ${testdir}/common.pem server A server B ${h2_B_addr}:${h2_B_port} server C ${h3_C_addr}:${h3_C_port} server D ${h4_D_addr}:${h4_D_port} frontend fe bind "fd@${fe}" tcp-request inspect-delay 100ms tcp-request content track-sc0 url table stkt tcp-request content sc-inc-gpc0(0) } haproxy h2 -arg "-L B" -conf { defaults mode http timeout client "${HAPROXY_TEST_TIMEOUT-5s}" timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" timeout server "${HAPROXY_TEST_TIMEOUT-5s}" backend stkt stick-table type string size 10m store server_id,gpc0,conn_cur,conn_rate(50000) peers peers peers peers default-server ssl crt ${testdir}/common.pem verify none bind "fd@${B}" ssl crt ${testdir}/common.pem server A ${h1_A_addr}:${h1_A_port} server B server C ${h3_C_addr}:${h3_C_port} server D ${h4_D_addr}:${h4_D_port} frontend fe bind "fd@${fe}" http-request track-sc0 url table stkt http-request sc-inc-gpc0(0) } haproxy h3 -arg "-L C" -conf { defaults mode http timeout client "${HAPROXY_TEST_TIMEOUT-5s}" timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" timeout server "${HAPROXY_TEST_TIMEOUT-5s}" backend stkt stick-table type string size 10m store server_id,gpc0,conn_cur,conn_rate(50000) peers peers peers peers default-server ssl crt ${testdir}/common.pem verify none bind "fd@${C}" ssl crt ${testdir}/common.pem server A ${h1_A_addr}:${h1_A_port} server B ${h2_B_addr}:${h2_B_port} server C server D ${h4_D_addr}:${h4_D_port} frontend fe bind "fd@${fe}" http-request track-sc0 url table stkt http-request sc-inc-gpc0(0) } haproxy h4 -arg "-L D" -conf { defaults mode http timeout client "${HAPROXY_TEST_TIMEOUT-5s}" timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" timeout server "${HAPROXY_TEST_TIMEOUT-5s}" backend stkt stick-table type string size 10m store server_id,gpc0,conn_cur,conn_rate(50000) peers peers peers peers bind "fd@${D}" server A ${h1_A_addr}:${h1_A_port} server B ${h2_B_addr}:${h2_B_port} server C ${h3_C_addr}:${h3_C_port} server D frontend fe bind "fd@${fe}" http-request track-sc0 url table stkt http-request sc-inc-gpc0(0) } client c1 -connect ${h1_fe_sock} { txreq -url "/c1_client" expect_close } -start client c2 -connect ${h1_fe_sock} { txreq -url "/c2_client" expect_close } -start client c3 -connect ${h1_fe_sock} { txreq -url "/c3_client" expect_close } -start client c4 -connect ${h1_fe_sock} { txreq -url "/c4_client" expect_close } -start haproxy h1 -start delay 0.2 haproxy h2 -start delay 0.2 haproxy h3 -start delay 0.2 haproxy h4 -start delay 0.2 client c1 -wait client c2 -wait client c3 -wait client c4 -wait delay 2 haproxy h1 -cli { send "show table stkt" expect ~ "# table: stkt, type: string, size:1048[0-9]{4}, used:4(\n0x[0-9a-f]*: key=/c[1-4]_client use=0 exp=0 server_id=0 gpc0=1 conn_rate\\(50000\\)=1 conn_cur=0){4}" } haproxy h2 -cli { send "show table stkt" expect ~ "# table: stkt, type: string, size:1048[0-9]{4}, used:4(\n0x[0-9a-f]*: key=/c[1-4]_client use=0 exp=0 server_id=0 gpc0=1 conn_rate\\(50000\\)=1 conn_cur=0){4}" } haproxy h3 -cli { send "show table stkt" expect ~ "# table: stkt, type: string, size:1048[0-9]{4}, used:4(\n0x[0-9a-f]*: key=/c[1-4]_client use=0 exp=0 server_id=0 gpc0=1 conn_rate\\(50000\\)=1 conn_cur=0){4}" } haproxy h4 -cli { send "show table stkt" expect ~ "# table: stkt, type: string, size:1048[0-9]{4}, used:0\n" }