summaryrefslogtreecommitdiffstats
path: root/reg-tests/peers/basic_sync.vtc
blob: 5c0cb4117c1f326cc3b58091e6e9b8f250fb9585 (plain)
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
vtest "Basic test for peers protocol"
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
        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 {
    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 {
    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}"
}