# 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 }