blob: ac6c2aefbfb3778ff794a1e3e14e320b3149e81f [file] [log] [blame]
Daniel Wagner58b83172019-07-22 20:39:04 +02001#!/bin/sh -e
2# shellcheck disable=SC1090
3# shellcheck disable=SC2154
4# sigwaittest starts two threads or, optionally, forks two processes that
5# are synchronized via signals and measures the latency between sending
6# a signal and returning from sigwait()
7
8TEST_DIR=$(dirname "$(realpath "$0")")
9OUTPUT="${TEST_DIR}/output"
10LOGFILE="${OUTPUT}/sigwaittest.log"
11RESULT_FILE="${OUTPUT}/result.txt"
12DURATION="5m"
13MAX_LATENCY="100"
14
15usage() {
16 echo "Usage: $0 [-D duration] [-m latency]" 1>&2
17 exit 1
18}
19
20while getopts ":D:m:" opt; do
21 case "${opt}" in
22 D) DURATION="${OPTARG}" ;;
23 m) MAX_LATENCY="${OPTARG}" ;;
24 *) usage ;;
25 esac
26done
27
28. "${TEST_DIR}/../../lib/sh-test-lib"
29
30! check_root && error_msg "Please run this script as root."
31create_out_dir "${OUTPUT}"
32
33# Run sigwaittest.
34if ! binary=$(command -v sigwaittest); then
35 detect_abi
36 # shellcheck disable=SC2154
37 binary="./bin/${abi}/sigwaittest"
38fi
39
40"${binary}" -t -a -p 98 -D "${DURATION}" | tee "${LOGFILE}"
41
42# Parse test log.
43../../lib/parse_rt_tests_results.py sigwaittest "${LOGFILE}" "${MAX_LATENCY}" \
44 | tee -a "${RESULT_FILE}"