Prepare to generalize maybe_requires_ciphersuite_enabled

Rename maybe_requires_ciphersuite_enabled() to detect_required_features()
and refactor its code a little. No intended behavior change. In subsequent
commits, this function will detect other requirements in a similar way.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2022-04-08 19:26:26 +02:00
parent d2d90af7d9
commit b898b3df90

View file

@ -275,22 +275,18 @@ requires_ciphersuite_enabled() {
esac esac
} }
# maybe_requires_ciphersuite_enabled CMD [RUN_TEST_OPTION...] # detect_required_features CMD [RUN_TEST_OPTION...]
# If CMD (call to a TLS client or server program) requires a specific # If CMD (call to a TLS client or server program) requires certain features,
# ciphersuite, arrange to only run the test case if this ciphersuite is # arrange to only run the following test case if those features are enabled.
# enabled. detect_required_features() {
maybe_requires_ciphersuite_enabled() {
case "$1" in case "$1" in
*\ force_ciphersuite=*) :;; *\ force_ciphersuite=*)
*) return;; # No specific required ciphersuite tmp="${1##*\ force_ciphersuite=}"
tmp="${tmp%%[!-0-9A-Z_a-z]*}"
requires_ciphersuite_enabled "$tmp";;
esac esac
ciphersuite="${1##*\ force_ciphersuite=}"
ciphersuite="${ciphersuite%%[!-0-9A-Z_a-z]*}"
shift
requires_ciphersuite_enabled "$ciphersuite" unset tmp
unset ciphersuite
} }
requires_certificate_authentication () { requires_certificate_authentication () {
@ -1272,9 +1268,10 @@ run_test() {
requires_config_enabled MBEDTLS_SSL_ALPN;; requires_config_enabled MBEDTLS_SSL_ALPN;;
esac esac
# If the client or serve requires a ciphersuite, check that it's enabled. # If the client or server requires certain features that can be detected
maybe_requires_ciphersuite_enabled "$SRV_CMD" "$@" # from their command-line arguments, check that they're enabled.
maybe_requires_ciphersuite_enabled "$CLI_CMD" "$@" detect_required_features "$SRV_CMD" "$@"
detect_required_features "$CLI_CMD" "$@"
# If we're in a PSK-only build and the test can be adapted to PSK, do that. # If we're in a PSK-only build and the test can be adapted to PSK, do that.
maybe_adapt_for_psk "$@" maybe_adapt_for_psk "$@"