summaryrefslogtreecommitdiff
path: root/automated/linux/signaltest/signaltest.sh
diff options
context:
space:
mode:
Diffstat (limited to 'automated/linux/signaltest/signaltest.sh')
-rwxr-xr-xautomated/linux/signaltest/signaltest.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/automated/linux/signaltest/signaltest.sh b/automated/linux/signaltest/signaltest.sh
new file mode 100755
index 0000000..b3b8b1a
--- /dev/null
+++ b/automated/linux/signaltest/signaltest.sh
@@ -0,0 +1,44 @@
+#!/bin/sh -e
+# signaltest is a RT signal roundtrip test software.
+
+# shellcheck disable=SC1091
+. ../../lib/sh-test-lib
+
+OUTPUT="$(pwd)/output"
+LOGFILE="${OUTPUT}/signaltest.txt"
+RESULT_FILE="${OUTPUT}/result.txt"
+
+PRIORITY="99"
+THREADS="2"
+LOOPS="10000"
+
+usage() {
+ echo "Usage: $0 [-p priority] [-t threads] [-l loops]" 1>&2
+ exit 1
+}
+
+while getopts ":p:t:l:" opt; do
+ case "${opt}" in
+ p) PRIORITY="${OPTARG}" ;;
+ t) THREADS="${OPTARG}" ;;
+ l) LOOPS="${OPTARG}" ;;
+ *) usage ;;
+ esac
+done
+
+! check_root && error_msg "Please run this script as root."
+[ -d "${OUTPUT}" ] && mv "${OUTPUT}" "${OUTPUT}_$(date +%Y%m%d%H%M%S)"
+mkdir -p "${OUTPUT}"
+
+# Run signaltest.
+detect_abi
+# shellcheck disable=SC2154
+./bin/"${abi}"/signaltest -p "${PRIORITY}" -t "${THREADS}" -l "${LOOPS}" \
+ | tee "${LOGFILE}"
+
+# Parse test log.
+tail -n 1 "${LOGFILE}" \
+ | awk '{printf("min-latency pass %s us\n", $(NF-6))};
+ {printf("avg-latency pass %s us\n", $(NF-2))};
+ {printf("max-latency pass %s us\n", $NF)};' \
+ | tee -a "${RESULT_FILE}"