blob: 4e985198344fe61ab103568d6abafb8734eebedf [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"
Daniel Wagner53f38bb2021-05-23 13:41:20 +020010LOGFILE="${OUTPUT}/sigwaittest.json"
Daniel Wagner58b83172019-07-22 20:39:04 +020011RESULT_FILE="${OUTPUT}/result.txt"
12DURATION="5m"
Daniel Wagner2d8a3232019-07-31 17:11:26 +020013BACKGROUND_CMD=""
Daniel Wagner58b83172019-07-22 20:39:04 +020014
15usage() {
Daniel Wagnerfd3a2142020-08-27 15:58:46 +020016 echo "Usage: $0 [-D duration] [-w background_cmd]" 1>&2
Daniel Wagner58b83172019-07-22 20:39:04 +020017 exit 1
18}
19
Daniel Wagnerfd3a2142020-08-27 15:58:46 +020020while getopts ":D:w:" opt; do
Daniel Wagner58b83172019-07-22 20:39:04 +020021 case "${opt}" in
22 D) DURATION="${OPTARG}" ;;
Daniel Wagner2d8a3232019-07-31 17:11:26 +020023 w) BACKGROUND_CMD="${OPTARG}" ;;
Daniel Wagner58b83172019-07-22 20:39:04 +020024 *) 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
Daniel Wagner2d8a3232019-07-31 17:11:26 +020040background_process_start bgcmd --cmd "${BACKGROUND_CMD}"
41
Daniel Wagner53f38bb2021-05-23 13:41:20 +020042"${binary}" -q -t -a -p 98 -D "${DURATION}" --json="${LOGFILE}"
Daniel Wagner58b83172019-07-22 20:39:04 +020043
Daniel Wagner2d8a3232019-07-31 17:11:26 +020044background_process_stop bgcmd
45
Daniel Wagner58b83172019-07-22 20:39:04 +020046# Parse test log.
Daniel Wagnerfd3a2142020-08-27 15:58:46 +020047../../lib/parse_rt_tests_results.py sigwaittest "${LOGFILE}" \
Daniel Wagner58b83172019-07-22 20:39:04 +020048 | tee -a "${RESULT_FILE}"