]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
pytest: quiche flakiness
authorStefan Eissing <stefan@eissing.org>
Wed, 10 Dec 2025 10:17:49 +0000 (11:17 +0100)
committerViktor Szakats <commit@vsz.me>
Wed, 10 Dec 2025 14:26:27 +0000 (15:26 +0100)
Let nghttpx only use http/1.1 to backend. This reproduces the bug in
quiche with higher frequency. Allow test_14_05 to now return a 400 in
addition to the 431 we get from a h2 backend to nghttpx.

Skip test_05_02 in h3 on quiche not newer than version 0.24.4 in which
its bug is fixed: https://github.com/cloudflare/quiche/pull/2278

Ref: https://github.com/cloudflare/quiche/issues/2277
Closes #19770 (original Issue)
Closes #19916

tests/http/test_05_errors.py
tests/http/test_14_auth.py
tests/http/testenv/nghttpx.py

index 102b92e202565c4a3c0d3e6ec23b7e4f952a2ad0..5fada150059308e56e09811dd9a1ff5740f9f3f9 100644 (file)
@@ -60,6 +60,9 @@ class TestErrors:
     def test_05_02_partial_20(self, env: Env, httpd, nghttpx, proto):
         if proto == 'h3' and env.curl_uses_ossl_quic():
             pytest.skip("openssl-quic is flaky in yielding proper error codes")
+        if proto == 'h3' and env.curl_uses_lib('quiche') and \
+                not env.curl_lib_version_at_least('quiche', '0.24.5'):
+            pytest.skip("quiche issue #2277 not fixed")
         count = 20
         curl = CurlClient(env=env)
         urln = f'https://{env.authority_for(env.domain1, proto)}' \
index 0187c76a6a70de6b1578a7f1dcb0edbaf4fe7ead..9f2ae7a27f0fb33c23303d5eebf85a14b64e3783 100644 (file)
@@ -107,8 +107,9 @@ class TestAuth:
             '--basic', '--user', f'test:{password}',
             '--trace-config', 'http/2,http/3'
         ])
-        # but apache denies on length limit
-        r.check_response(http_status=431)
+        # but apache either denies on length limit or gives a 400
+        r.check_exit_code(0)
+        assert r.stats[0]['http_code'] in [400, 431]
 
     # PUT data, basic auth with very large pw
     @pytest.mark.parametrize("proto", Env.http_mplx_protos())
index 106766fc0fe70867838fe35c388b19ec13a820c0..950d567f24b843849507d74d4d28ca84c3383331 100644 (file)
@@ -247,7 +247,6 @@ class NghttpxQuic(Nghttpx):
                 '--frontend-quic-early-data',
             ])
         args.extend([
-            f'--backend=127.0.0.1,{self.env.https_port};{self._domain};sni={self._domain};proto=h2;tls',
             f'--backend=127.0.0.1,{self.env.http_port}',
             '--log-level=ERROR',
             f'--pid-file={self._pid_file}',