refactor(tfut): move common run code to a shared file
Some existing functions used in existing TF-A tests are re-used for
unit tests. In order to avoid code duplication, these functions were
moved to a common file.
Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com>
Signed-off-by: Edward Potapov <edward.potapov@arm.com>
Change-Id: Ic4c507fa457333b6a70824050df28420a3f1c7c5
diff --git a/script/run_common.sh b/script/run_common.sh
new file mode 100644
index 0000000..063b8c3
--- /dev/null
+++ b/script/run_common.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2024, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+# Launch a program. Have its PID saved in a file with given name with .pid
+# suffix. When the program exits, create a file with .success suffix, or one
+# with .fail if it fails. This function blocks, so the caller must '&' this if
+# they want to continue. Call must wait for $pid_dir/$name.pid to be created
+# should it want to read it.
+launch() {
+ local pid
+
+ "$@" &
+ pid="$!"
+ echo "$pid" > "$pid_dir/${name:?}.pid"
+ if wait "$pid"; then
+ touch "$pid_dir/$name.success"
+ else
+ touch "$pid_dir/$name.fail"
+ fi
+}
+
+# Provide signal as an argument to the trap function.
+trap_with_sig() {
+ local func
+
+ func="$1" ; shift
+ for sig ; do
+ trap "$func $sig" "$sig"
+ done
+}