diff --git a/tests/psa-client-server/psasim/test/kill_server.sh b/tests/psa-client-server/psasim/test/kill_server.sh new file mode 100755 index 000000000..7aba5a32e --- /dev/null +++ b/tests/psa-client-server/psasim/test/kill_server.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later + +set -e + +pkill psa_server || true + +# Remove temporary files and logs +rm -f psa_notify_* +rm -f psa_service_* +rm -f psa_server.log + +# Remove all IPCs +ipcs -q | awk '{ printf " -q " $2 }' | xargs ipcrm > /dev/null 2>&1 || true diff --git a/tests/psa-client-server/psasim/test/run_test.sh b/tests/psa-client-server/psasim/test/run_test.sh index 7c1011ead..ac9c4c86c 100755 --- a/tests/psa-client-server/psasim/test/run_test.sh +++ b/tests/psa-client-server/psasim/test/run_test.sh @@ -1,13 +1,13 @@ #!/bin/bash +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later + # This is a simple bash script that tests psa_client/psa_server interaction. # This script is automatically executed when "make run" is launched by the # "psasim" root folder. The script can also be launched manually once # binary files are built (i.e. after "make test" is executed from the "psasim" # root folder). -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later set -e @@ -16,26 +16,10 @@ cd "$(dirname "$0")" CLIENT_BIN=$1 shift -function clean_run() { - rm -f psa_notify_* - pkill psa_partition || true - pkill psa_client || true - ipcs | grep q | awk '{ printf " -q " $2 }' | xargs ipcrm > /dev/null 2>&1 || true -} +ipcs | grep q | awk '{ printf " -q " $2 }' | xargs ipcrm > /dev/null 2>&1 || true -# The server creates some local files when it starts up so we can wait for this -# event as signal that the server is ready so that we can start client(s). -function wait_for_server_startup() { - while [ ! -f ./psa_notify_* ]; do - sleep 0.1 - done -} - -clean_run - -./psa_partition & -wait_for_server_startup +./start_server.sh ./$CLIENT_BIN "$@" # Kill server once client exited -pkill psa_partition +pkill psa_server diff --git a/tests/psa-client-server/psasim/test/start_server.sh b/tests/psa-client-server/psasim/test/start_server.sh new file mode 100755 index 000000000..fcc8a97e9 --- /dev/null +++ b/tests/psa-client-server/psasim/test/start_server.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later + +set -e + +# The server creates some local files when it starts up so we can wait for this +# event as signal that the server is ready so that we can start client(s). +function wait_for_server_startup() { + while [ $(find . -name "psa_notify_*" | wc -l) -eq 0 ]; do + sleep 0.1 + done +} + +$(dirname "$0")/kill_server.sh + +$(dirname "$0")/psa_server & +wait_for_server_startup