varnishtest "Two simple h3 tests (with and without QUIC RETRY)" feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(3.3-dev2)'" # QUIC backend are not supported with USE_QUIC_OPENSSL_COMPAT feature cmd "$HAPROXY_PROGRAM -cc 'feature(QUIC) && !feature(QUIC_OPENSSL_COMPAT) && !feature(OPENSSL_WOLFSSL)'" feature ignore_unknown_macro server s1 { rxreq txresp } -repeat 2 -start haproxy ha2 -conf { global expose-experimental-directives .if feature(THREAD) thread-groups 1 .endif # Uncomment these lines to get some debug traces on stderr # traces # trace quic sink stderr level developer start now # trace ssl sink stderr level developer verbosity complete start now defaults mode http timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" timeout client "${HAPROXY_TEST_TIMEOUT-5s}" timeout server "${HAPROXY_TEST_TIMEOUT-5s}" listen quic_lstnr bind "quic+fd@${fe_quic}" ssl crt ${testdir}/common.pem server srv ${s1_addr}:${s1_port} listen quic_lstnr_retry bind "quic+fd@${fe_quic_retry}" ssl crt ${testdir}/common.pem quic-force-retry server srv ${s1_addr}:${s1_port} } -start haproxy ha1 -conf { global expose-experimental-directives .if feature(THREAD) thread-groups 1 .endif # Uncomment these lines to get some debug traces on stderr # traces # trace quic sink stderr level developer start now # trace ssl sink stderr level developer verbosity complete start now defaults mode http timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" timeout client "${HAPROXY_TEST_TIMEOUT-5s}" timeout server "${HAPROXY_TEST_TIMEOUT-5s}" backend quic_be server quic quic4@${ha2_fe_quic_addr}:${ha2_fe_quic_port} ssl verify none backend quic_be_retry server quic_retry quic4@${ha2_fe_quic_retry_addr}:${ha2_fe_quic_retry_port} ssl verify none frontend fe_wo_retry bind "fd@${fe}" use_backend quic_be frontend fe_with_retry bind "fd@${fe_retry}" use_backend quic_be_retry } -start client c1 -connect ${ha1_fe_sock} { txreq rxresp expect resp.status == 200 } -run client c2 -connect ${ha1_fe_retry_sock} { txreq rxresp expect resp.status == 200 } -run