1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
vtest "Basic test for peers protocol"
feature ignore_unknown_macro
#REGTEST_TYPE=slow
haproxy h1 -arg "-L A" -conf {
global
.if feature(THREAD)
thread-groups 1
.endif
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
bind "fd@${A}"
server A
server B ${h2_B_addr}:${h2_B_port}
server C ${h3_C_addr}:${h3_C_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 {
global
.if feature(THREAD)
thread-groups 1
.endif
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@${B}"
server A ${h1_A_addr}:${h1_A_port}
server B
server C ${h3_C_addr}:${h3_C_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 {
global
.if feature(THREAD)
thread-groups 1
.endif
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@${C}"
server A ${h1_A_addr}:${h1_A_port}
server B ${h2_B_addr}:${h2_B_port}
server C
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
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 shard=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 shard=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 shard=0 server_id=0 gpc0=1 conn_rate\\(50000\\)=1 conn_cur=0){4}"
}
|