blob: 3d297a1c552908e3b6959bcb7649a0dd14cd9855 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#!/bin/sh
. ../../lib/sh-test-lib
OUTPUT="$(pwd)/output"
RESULT_FILE="${OUTPUT}/result.txt"
TEST_LEVEL="0"
TEST_SUITE="regression"
usage() {
echo "Usage: $0 [-l <0-15> -t <regression|benchmark>]" 1>&2
exit 1
}
while getopts "l:t:h:" o; do
case "$o" in
l) TEST_LEVEL="${OPTARG}" ;;
t) TEST_SUITE="${OPTARG}" ;;
h|*) usage ;;
esac
done
# Test run.
create_out_dir "${OUTPUT}"
command -v tee-supplicant && command -v xtest
exit_on_fail "xtest-existence-check"
tee-supplicant &
tee_supplicant_pid="$!"
sleep 5
info_msg "Running xtest..."
LOG_FILE="${OUTPUT}/${TEST_SUITE}-output.txt"
test_cmd="xtest -l ${TEST_LEVEL} -t ${TEST_SUITE} 2>&1"
pipe0_status "${test_cmd}" "tee ${LOG_FILE}"
check_return "xtest-run"
# Parse xtest test log.
awk "/Result of testsuite ${TEST_SUITE}:/{flag=1; next} /+-----------------------------------------------------/{flag=0} flag" "${LOG_FILE}" \
| sed 's/OK/pass/; s/FAILED/fail/; s/SKIPPED/skip/' \
| awk '{printf("%s %s\n", $1, $2)}' \
| tee -a "${RESULT_FILE}"
# Parse test pass/fail/skip stats.
for i in "subtests" "test cases"; do
grep -E "^[0-9]+ $i of which [0-9]+ failed" "${LOG_FILE}" \
| awk -v tc="$(echo "$i" | sed 's/ /-/')" \
'{printf("%s-fail-rate pass %s/%s\n"), tc, $(NF-1), $1}' \
| tee -a "${RESULT_FILE}"
done
grep -E "^[0-9]+ test case was skipped" "${LOG_FILE}" \
| awk '{printf("test-skipped pass %s\n", $1)}' \
| tee -a "${RESULT_FILE}"
# Cleanup.
kill "${tee_supplicant_pid}"
|