diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index b1261bfc15..089cb6b9e0 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1,112 +1,16 @@ #! /usr/bin/env bash -# all.sh (transitional wrapper) +# all.sh (mbedtls part) # # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later -# This is a transitional wrapper that's only meant for the CI. -# Developers should directly invoke on or two of: -# - tests/scripts/mbedtls-all.sh ... -# - (cd tf-psa-crypto && tests/scripts/all.sh ...) -# -# During the transition, it's illegal for a tf-psa-crypto component to have -# the same name as an mbedtls components; since this wrapper handles both -# sides at once, component names need to be globally unique. Once the -# transition period is over, unicity on each side will be enough. -# -# For context, here are the steps of the transition: -# 1. We have an all.sh in tf-psa-crypto but for now we don't invoke it directly -# on the CI, only through this transitional wrapper in mbedtls. (tf-psa-crypto -# doesn't have its own CI initially and runs Mbed TLS's instead.) -# 2. We move all relevant components to tf-psa-crypto so that it gets the level of -# coverage we want. We need to make sure the new names are unique. -# 3. We change the CI job on tf-psa-crypto to stop checking out mbedtls and running -# its all.sh - instead we do the normal thing of checking out tf-psa-crypto and -# running its all.sh. (In two steps: (a) add the new job, (b) remove the old -# one.) -# 4. We remove the transitional wrapper in mbedtls and we're now free to rename -# tf-psa-crypto components as we want. If we followed a consistent naming -# pattern, this can be as simple as s/_tf_psa_crypto// in components-*.sh. +# This file is executable; it is the entry point for users and the CI. +# See "Files structure" in all-core.sh for other files used. # This script must be invoked from the project's root. -# There are exactly 4 ways this is invoked in the CI: -# 1. tests/scripts/all.sh --help -# 2. tests/scripts/all.sh --list-all-components -# 3. tests/scripts/all.sh --list-components -# 4. tests/scripts/all.sh --seed 4 --keep-going single_component_name -# This wrapper does not support other invocations. +FRAMEWORK="$PWD/framework" +source $FRAMEWORK/scripts/all-core.sh -set -eu - -# Cases 1-3 -if [ "$#" -eq 1 ]; then - if [ "$1" = '--help' ]; then - # It doesn't matter which one we use, they're the same - tests/scripts/mbedtls-all.sh "$1" - exit 0 - fi - if [ "$1" = '--list-all-components' -o "$1" = '--list-components' ]; then - # Invoke both - tests/scripts/mbedtls-all.sh "$1" - (cd tf-psa-crypto && tests/scripts/all.sh "$1") - exit 0 - fi -fi - -if [ "$#" -ne 4 -o "${1:-unset}" != '--seed' -o "${3:-unset}" != '--keep-going' ]; then - echo "This invocation is not supported by the transitional wrapper." >&2 - echo "See the comments at the top of $0." >&2 - exit 1 -fi - -# Case 4: invoke the right all.sh for this component -comp_name=$4 - -# Get the list of components available on each side. -COMP_MBEDTLS=$(tests/scripts/mbedtls-all.sh --list-all-components | tr '\n' ' ') -COMP_CRYPTO=$(cd tf-psa-crypto && tests/scripts/all.sh --list-all-components | tr '\n' ' ') - -# tell if $1 is in space-separated list $2 -is_in() { - needle=$1 - haystack=$2 - case " $haystack " in - *" $needle "*) echo 1;; - *) echo 0;; - esac -} - -is_crypto=$(is_in "$comp_name" "$COMP_CRYPTO") -is_mbedtls=$(is_in "$comp_name" "$COMP_MBEDTLS") - -# Component should be on exactly one side (see comment near the top). -if [ "$is_crypto" -eq 1 -a "$is_mbedtls" -eq 1 ]; then - echo "Component '$comp_name' is both in crypto and Mbed TLS". >&2 - echo "See the comments at the top of $0." >&2 - exit 1 -fi -if [ "$is_crypto" -eq 0 -a "$is_mbedtls" -eq 0 ]; then - echo "Component '$comp_name' is neither in crypto nor in Mbed TLS". >&2 - echo "See the comments at the top of $0." >&2 - exit 1 -fi - - -# Invoke the real thing -if [ "$is_crypto" -eq 1 ]; then - # Make sure the path to the outcomes file is absolute. This is done by - # pre_prepare_outcome_file() however by the time it runs we've already - # changed the working directory, so do it now. - if [ -n "${MBEDTLS_TEST_OUTCOME_FILE+set}" ]; then - case "$MBEDTLS_TEST_OUTCOME_FILE" in - [!/]*) MBEDTLS_TEST_OUTCOME_FILE="$PWD/$MBEDTLS_TEST_OUTCOME_FILE";; - esac - export MBEDTLS_TEST_OUTCOME_FILE - fi - cd tf-psa-crypto - exec tests/scripts/all.sh "$@" -else - exec tests/scripts/mbedtls-all.sh "$@" -fi +main "$@" diff --git a/tests/scripts/mbedtls-all.sh b/tests/scripts/mbedtls-all.sh deleted file mode 100755 index 089cb6b9e0..0000000000 --- a/tests/scripts/mbedtls-all.sh +++ /dev/null @@ -1,16 +0,0 @@ -#! /usr/bin/env bash - -# all.sh (mbedtls part) -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later - -# This file is executable; it is the entry point for users and the CI. -# See "Files structure" in all-core.sh for other files used. - -# This script must be invoked from the project's root. - -FRAMEWORK="$PWD/framework" -source $FRAMEWORK/scripts/all-core.sh - -main "$@"