varnishtest "Health-checks: only for servers with 'check' set"
feature ignore_unknown_macro

# This test start 40 servers in the same backend, named srv0 up to srv39.
# Only the odd servers have health-checks enabled.
# The first health-checks passed tests are checked for all these servers
# thanks to syslog messages.

#REQUIRE_VERSION=1.8
#EXCLUDE_TARGETS=freebsd

# Note that the first syslog message received is: "Proxy <name> started."
syslog S -repeat 21 -level notice {
    recv
    expect ~ "[^:\\[ ]\\[${h1_pid}\\]: (Health check for server be1/srv([13579]|[123][13579]) succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP|Proxy be1 started.)"
} -start

server s0 {} -start
server s1 {} -start
server s2 {} -start
server s3 {} -start
server s4 {} -start
server s5 {} -start
server s6 {} -start
server s7 {} -start
server s8 {} -start
server s9 {} -start
server s10 {} -start
server s11 {} -start
server s12 {} -start
server s13 {} -start
server s14 {} -start
server s15 {} -start
server s16 {} -start
server s17 {} -start
server s18 {} -start
server s19 {} -start
server s20 {} -start
server s21 {} -start
server s22 {} -start
server s23 {} -start
server s24 {} -start
server s25 {} -start
server s26 {} -start
server s27 {} -start
server s28 {} -start
server s29 {} -start
server s30 {} -start
server s31 {} -start
server s32 {} -start
server s33 {} -start
server s34 {} -start
server s35 {} -start
server s36 {} -start
server s37 {} -start
server s38 {} -start
server s39 {} -start

haproxy h1 -conf {
    defaults
        timeout client 1s
        timeout server 1s
        timeout connect 1s
        default-server no-check downinter 1s rise 1 fall 1

    backend be1
        option log-health-checks
        log ${S_addr}:${S_port} daemon
        server srv0 ${s0_addr}:${s0_port}
        server srv1 ${s1_addr}:${s1_port} check
        server srv2 ${s2_addr}:${s2_port}
        server srv3 ${s3_addr}:${s3_port} check
        server srv4 ${s4_addr}:${s4_port}
        server srv5 ${s5_addr}:${s5_port} check
        server srv6 ${s6_addr}:${s6_port}
        server srv7 ${s7_addr}:${s7_port} check
        server srv8 ${s8_addr}:${s8_port}
        server srv9 ${s9_addr}:${s9_port} check
        server srv10 ${s10_addr}:${s10_port}
        server srv11 ${s11_addr}:${s11_port} check
        server srv12 ${s12_addr}:${s12_port}
        server srv13 ${s13_addr}:${s13_port} check
        server srv14 ${s14_addr}:${s14_port}
        server srv15 ${s15_addr}:${s15_port} check
        server srv16 ${s16_addr}:${s16_port}
        server srv17 ${s17_addr}:${s17_port} check
        server srv18 ${s18_addr}:${s18_port}
        server srv19 ${s19_addr}:${s19_port} check
        server srv20 ${s20_addr}:${s20_port}
        server srv21 ${s21_addr}:${s21_port} check
        server srv22 ${s22_addr}:${s22_port}
        server srv23 ${s23_addr}:${s23_port} check
        server srv24 ${s24_addr}:${s24_port}
        server srv25 ${s25_addr}:${s25_port} check
        server srv26 ${s26_addr}:${s26_port}
        server srv27 ${s27_addr}:${s27_port} check
        server srv28 ${s28_addr}:${s28_port}
        server srv29 ${s29_addr}:${s29_port} check
        server srv30 ${s30_addr}:${s30_port}
        server srv31 ${s31_addr}:${s31_port} check
        server srv32 ${s32_addr}:${s32_port}
        server srv33 ${s33_addr}:${s33_port} check
        server srv34 ${s34_addr}:${s34_port}
        server srv35 ${s35_addr}:${s35_port} check
        server srv36 ${s36_addr}:${s36_port}
        server srv37 ${s37_addr}:${s37_port} check
        server srv38 ${s38_addr}:${s38_port}
        server srv39 ${s39_addr}:${s39_port} check
} -start

syslog S -wait

haproxy h1 -cli {
    send "show servers state"
    expect ~ "# be_id be_name srv_id srv_name srv_addr srv_op_state srv_admin_state srv_uweight srv_iweight srv_time_since_last_change srv_check_status srv_check_result srv_check_health srv_check_state srv_agent_state bk_f_forced_id srv_f_forced_id srv_fqdn srv_port srvrecord\n2 be1 1 srv0 ${s0_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s0_port} -\n2 be1 2 srv1 ${s1_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s1_port} -\n2 be1 3 srv2 ${s2_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s2_port} -\n2 be1 4 srv3 ${s3_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s3_port} -\n2 be1 5 srv4 ${s4_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s4_port} -\n2 be1 6 srv5 ${s5_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s5_port} -\n2 be1 7 srv6 ${s6_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s6_port} -\n2 be1 8 srv7 ${s7_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s7_port} -\n2 be1 9 srv8 ${s8_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s8_port} -\n2 be1 10 srv9 ${s9_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s9_port} -\n2 be1 11 srv10 ${s10_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s10_port} -\n2 be1 12 srv11 ${s11_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s11_port} -\n2 be1 13 srv12 ${s12_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s12_port} -\n2 be1 14 srv13 ${s13_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s13_port} -\n2 be1 15 srv14 ${s14_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s14_port} -\n2 be1 16 srv15 ${s15_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s15_port} -\n2 be1 17 srv16 ${s16_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s16_port} -\n2 be1 18 srv17 ${s17_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s17_port} -\n2 be1 19 srv18 ${s18_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s18_port} -\n2 be1 20 srv19 ${s19_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s19_port} -\n2 be1 21 srv20 ${s20_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s20_port} -\n2 be1 22 srv21 ${s21_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s21_port} -\n2 be1 23 srv22 ${s22_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s22_port} -\n2 be1 24 srv23 ${s23_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s23_port} -\n2 be1 25 srv24 ${s24_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s24_port} -\n2 be1 26 srv25 ${s25_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s25_port} -\n2 be1 27 srv26 ${s26_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s26_port} -\n2 be1 28 srv27 ${s27_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s27_port} -\n2 be1 29 srv28 ${s28_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s28_port} -\n2 be1 30 srv29 ${s29_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s29_port} -\n2 be1 31 srv30 ${s30_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s30_port} -\n2 be1 32 srv31 ${s31_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s31_port} -\n2 be1 33 srv32 ${s32_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s32_port} -\n2 be1 34 srv33 ${s33_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s33_port} -\n2 be1 35 srv34 ${s34_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s34_port} -\n2 be1 36 srv35 ${s35_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s35_port} -\n2 be1 37 srv36 ${s36_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s36_port} -\n2 be1 38 srv37 ${s37_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s37_port} -\n2 be1 39 srv38 ${s38_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s38_port} -\n2 be1 40 srv39 ${s39_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s39_port} -\n"
}

