pytest: replace allowlist with feature check to enable OCSP test 17_08

Add a `cert-status` feature flag to `curlinfo`, based on the conditions
used in `lib/vtls` sources.

To:
- fix disabling this test when using OpenSSL (or fork) built with
  the `no-ocsp` option.
- enable this test for AWS-LC in CI.

Note:
- BoringSSL (and quiche) has OSCP disabled by default.
- MultiSSL dynamic selection continues to confuse this test.
  (To fix it, support would need to be detected by querying libcurl
  via curl. Probably overkill given that OCSP is on its way out.)

Follow-up to f2c765028f #20149

Closes #20133
This commit is contained in:
Viktor Szakats 2025-12-31 18:15:17 +01:00
parent f2c765028f
commit 8292820b73
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
3 changed files with 18 additions and 4 deletions

View file

@ -39,6 +39,10 @@
#include <stdio.h>
#if defined(USE_QUICHE) || defined(USE_OPENSSL)
#include <openssl/opensslconf.h> /* for OPENSSL_NO_OCSP */
#endif
static const char *disabled[] = {
"bindlocal: "
#ifdef CURL_DISABLE_BINDLOCAL
@ -242,6 +246,14 @@ static const char *disabled[] = {
"ON"
#else
"OFF"
#endif
,
"cert-status: "
#if defined(USE_GNUTLS) || \
((defined(USE_QUICHE) || defined(USE_OPENSSL)) && !defined(OPENSSL_NO_OCSP))
"ON"
#else
"OFF"
#endif
};

View file

@ -292,10 +292,7 @@ class TestSSLUse:
@pytest.mark.parametrize("proto", Env.http_protos())
def test_17_08_cert_status(self, env: Env, proto, httpd, nghttpx):
if not env.curl_uses_lib('openssl') and \
not env.curl_uses_lib('quictls') and \
not env.curl_uses_lib('libressl') and \
not env.curl_uses_lib('gnutls'):
if not env.curl_can_cert_status():
pytest.skip("TLS library does not support --cert-status")
curl = CurlClient(env=env)
domain = 'localhost'

View file

@ -164,6 +164,7 @@ class EnvConfig:
if p.returncode != 0:
raise RuntimeError(f'{self.curlinfo} failed with exit code: {p.returncode}')
self.curl_is_verbose = 'verbose-strings: ON' in p.stdout
self.curl_can_cert_status = 'cert-status: ON' in p.stdout
self.ports = {}
@ -506,6 +507,10 @@ class Env:
def curl_is_verbose() -> bool:
return Env.CONFIG.curl_is_verbose
@staticmethod
def curl_can_cert_status() -> bool:
return Env.CONFIG.curl_can_cert_status
@staticmethod
def curl_can_early_data() -> bool:
if Env.curl_uses_lib('gnutls'):