]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
REGTEST: quic: add del_ssl_crt-list.vtc new QUIC test
authorFrederic Lecaille <flecaille@haproxy.com>
Thu, 30 Oct 2025 13:28:33 +0000 (14:28 +0100)
committerFrederic Lecaille <flecaille@haproxy.com>
Tue, 4 Nov 2025 09:23:56 +0000 (10:23 +0100)
This new reg test run exactly the same test as reg-test/ssl/del_ssl_crt-list.vtc
but with QUIC connections.

Does not work with OpenSSL 3.5 with such errors:
debug|conn. @(nil) OpenSSL error[0xa0000ea] tls_early_post_process_client_hello: callback failed

Does not work with AWSLC with such errors;
debug|conn. @(nil) OpenSSL error[0x10000085] OPENSSL_internal: CONNECTION_REJECTED

reg-tests/quic/del_ssl_crt-list.vtc [new file with mode: 0644]
reg-tests/quic/simple.crt-list [new symlink]
reg-tests/ssl/del_ssl_crt-list.vtc

diff --git a/reg-tests/quic/del_ssl_crt-list.vtc b/reg-tests/quic/del_ssl_crt-list.vtc
new file mode 100644 (file)
index 0000000..392ffb5
--- /dev/null
@@ -0,0 +1,10 @@
+#REGTEST_TYPE=devel
+
+# Same test as ssl/del_ssl_crt-list.vtc, but with QUIC connections where applicable (only for TLSv3)
+
+varnishtest "Test the 'del ssl crt-list' feature of the CLI"
+
+feature cmd "$HAPROXY_PROGRAM -cc 'feature(QUIC) && !feature(QUIC_OPENSSL_COMPAT) && !feature(OPENSSL_WOLFSSL) && !feature(OPENSSL_AWSLC) && openssl_version_before(3.5.0)'"
+
+setenv VTC_SOCK_TYPE quic
+include ${testdir}/../ssl/del_ssl_crt-list.vtc
diff --git a/reg-tests/quic/simple.crt-list b/reg-tests/quic/simple.crt-list
new file mode 120000 (symlink)
index 0000000..990cc47
--- /dev/null
@@ -0,0 +1 @@
+../ssl/simple.crt-list
\ No newline at end of file
index df0a51a21c5e8f6a946c821ed4c2c8f77525982a..d325def794242940128d08868529bb76011aff82 100644 (file)
@@ -18,8 +18,15 @@ server s1 -repeat 2 {
     txresp
 } -start
 
+setenv -ifunset VTC_SOCK_TYPE stream
+
 haproxy h1 -conf {
     global
+    .if streq("$VTC_SOCK_TYPE",quic)
+        # required for backend connections
+        expose-experimental-directives
+    .endif
+
     .if feature(THREAD)
         thread-groups 1
     .endif
@@ -32,6 +39,10 @@ haproxy h1 -conf {
         stats socket "${tmpdir}/h1/stats" level admin
         ssl-default-bind-options strict-sni
 
+#traces
+#trace quic sink stderr level developer start now
+#trace ssl sink stderr level developer verbosity complete start now
+
     defaults
         mode http
         option httplog
@@ -47,19 +58,19 @@ haproxy h1 -conf {
         bind "fd@${clearlst}"
         balance roundrobin
         http-response set-header X-SSL-Server-SHA1 %[ssl_s_sha1,hex]
-        server s1 "${tmpdir}/first-ssl.sock" ssl verify none sni str(record2.bug940.domain.tld)
-        server s2 "${tmpdir}/first-ssl.sock" ssl verify none sni str(record3.bug940.domain.tld)
-        server s3 "${tmpdir}/first-ssl.sock" ssl verify none sni str(record2.bug940.domain.tld)
+        server s1 "${VTC_SOCK_TYPE}+${h1_ssl_addr}:${h1_ssl_port}" ssl verify none sni str(record2.bug940.domain.tld)
+        server s2 "${VTC_SOCK_TYPE}+${h1_ssl_addr}:${h1_ssl_port}" ssl verify none sni str(record3.bug940.domain.tld)
+        server s3 "${VTC_SOCK_TYPE}+${h1_ssl_addr}:${h1_ssl_port}" ssl verify none sni str(record2.bug940.domain.tld)
 
     listen first-ssl-fe
         # note: strict-sni is enforced from ssl-default-bind-options above
         mode http
-        bind "${tmpdir}/first-ssl.sock" ssl crt-list ${testdir}/simple.crt-list
+        bind "${VTC_SOCK_TYPE}+fd@${ssl}" ssl crt-list ${testdir}/simple.crt-list
         server s1 ${s1_addr}:${s1_port}
 
     listen second-ssl-fe
         mode http
-        bind "${tmpdir}/second-ssl.sock" ssl no-strict-sni crt-list ${testdir}/localhost.crt-list
+        bind "fd@${secondssl}" ssl no-strict-sni crt-list ${testdir}/localhost.crt-list
         server s1 ${s1_addr}:${s1_port}
 } -start