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
#REGTEST_TYPE=slow

# 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"
}

