Extract psasim components into a separate file.
Signed-off-by: Minos Galanakis <minos.galanakis@arm.com>
diff --git a/tests/scripts/components-psasim.sh b/tests/scripts/components-psasim.sh
new file mode 100644
index 0000000..d557cc5
--- /dev/null
+++ b/tests/scripts/components-psasim.sh
@@ -0,0 +1,98 @@
+# components-psasim.sh
+#
+# Copyright The Mbed TLS Contributors
+# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+
+# This file contains the 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
+ (
+ cd tests
+ msg "start server in tests"
+ psa-client-server/psasim/test/start_server.sh
+ msg "start server in tf-psa-crypto/tests"
+ cd ../tf-psa-crypto/tests
+ ../../tests/psa-client-server/psasim/test/start_server.sh
+ )
+ else
+ (
+ msg "terminate servers and cleanup"
+ tests/psa-client-server/psasim//test/kill_servers.sh
+
+ # Remove temporary files and logs
+ cd tests
+ rm -f psa_notify_*
+ rm -f psa_service_*
+ rm -f psa_server.log
+
+ cd ../tf-psa-crypto/tests
+ rm -f psa_notify_*
+ rm -f psa_service_*
+ rm -f psa_server.log
+ )
+ 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 tests/psa-client-server/psasim CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" test/psa_client_base
+ msg "test basic psasim client"
+ tests/psa-client-server/psasim/test/run_test.sh psa_client_base
+
+ msg "build full psasim client"
+ make -C tests/psa-client-server/psasim CFLAGS="$ASAN_CFLAGS" LDFLAGS="$ASAN_CFLAGS" test/psa_client_full
+ msg "test full psasim client"
+ tests/psa-client-server/psasim/test/run_test.sh psa_client_full
+
+ make -C tests/psa-client-server/psasim 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 kill
+ 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
+}