mbedtls/tests/scripts/components-psasim.sh

100 lines
3.0 KiB
Bash
Raw Normal View History

# components-psasim.sh
#
# Copyright The Mbed TLS Contributors
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
# This file contains test components that are executed by all.sh
################################################################
#### Remote Procedure Call PSA Testing
################################################################
# Helper function for controlling (start & stop) the psasim server.
helper_psasim_server() {
OPERATION=$1
if [ "$OPERATION" == "start" ]; then
msg "start server in tests"
(
cd tests
../$PSASIM_PATH/test/start_server.sh
)
msg "start server in tf-psa-crypto/tests"
(
cd tf-psa-crypto/tests
../../$PSASIM_PATH/test/start_server.sh
)
else
msg "terminate server in tests"
(
# This will kill both servers and clean up all the message queues,
# and clear temporary files in tests
cd tests
../$PSASIM_PATH/test/kill_servers.sh
)
msg "terminate server in tf-psa-crypto/tests"
(
# This just clears temporary files in tf-psa-crypto/tests
cd tf-psa-crypto/tests
../../$PSASIM_PATH/test/kill_servers.sh
)
fi
}
component_test_psasim() {
msg "build server library and application"
scripts/config.py crypto
helper_psasim_config server
helper_psasim_build server
helper_psasim_cleanup_before_client
msg "build library for client"
helper_psasim_config client
helper_psasim_build client
msg "build basic psasim client"
make -C $PSASIM_PATH CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" test/psa_client_base
msg "test basic psasim client"
$PSASIM_PATH/test/run_test.sh psa_client_base
msg "build full psasim client"
make -C $PSASIM_PATH CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" test/psa_client_full
msg "test full psasim client"
$PSASIM_PATH/test/run_test.sh psa_client_full
helper_psasim_server kill
make -C $PSASIM_PATH clean
}
component_test_suite_with_psasim()
{
msg "build server library and application"
helper_psasim_config server
# Modify server's library configuration here (if needed)
helper_psasim_build server
helper_psasim_cleanup_before_client
msg "build client library"
helper_psasim_config client
# PAKE functions are still unsupported from PSASIM
scripts/config.py -f $CRYPTO_CONFIG_H unset PSA_WANT_ALG_JPAKE
scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
helper_psasim_build client
msg "build test suites"
make PSASIM=1 CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" tests
helper_psasim_server start
# psasim takes an extremely long execution time on some test suites so we
# exclude them from the list.
SKIP_TEST_SUITES="constant_time_hmac,lmots,lms"
export SKIP_TEST_SUITES
msg "run test suites"
make PSASIM=1 test
helper_psasim_server kill
}