Chase Qi | 09edc7f | 2016-08-18 13:18:50 +0800 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | RESULT_FILE="$1" |
Antonio Terceiro | 45a4d4a | 2025-03-10 16:41:00 -0300 | [diff] [blame] | 4 | RESULT_DIR="$2" |
| 5 | if [ -z "${RESULT_DIR}" ]; then |
| 6 | RESULT_DIR="$(dirname "${RESULT_FILE}")" |
| 7 | fi |
| 8 | |
Antonio Terceiro | 1161949 | 2025-04-17 10:28:30 -0300 | [diff] [blame] | 9 | signal() { |
| 10 | if [ -z ${KMSG} ] |
| 11 | then |
| 12 | echo "${1}" |
| 13 | else |
| 14 | echo "<0>${1}" > /dev/kmsg |
| 15 | fi |
| 16 | } |
| 17 | |
Antonio Terceiro | 45a4d4a | 2025-03-10 16:41:00 -0300 | [diff] [blame] | 18 | show_output() { |
| 19 | test_name="$1" |
| 20 | test_output="${RESULT_DIR}/${test_name}.log" |
| 21 | if [ -r "$test_output" ]; then |
Antonio Terceiro | 1161949 | 2025-04-17 10:28:30 -0300 | [diff] [blame] | 22 | signal "<LAVA_SIGNAL_STARTTC $test_name>" |
Antonio Terceiro | 45a4d4a | 2025-03-10 16:41:00 -0300 | [diff] [blame] | 23 | cat "$test_output" |
Antonio Terceiro | 1161949 | 2025-04-17 10:28:30 -0300 | [diff] [blame] | 24 | signal "<LAVA_SIGNAL_ENDTC $test_name>" |
Antonio Terceiro | 45a4d4a | 2025-03-10 16:41:00 -0300 | [diff] [blame] | 25 | fi |
| 26 | } |
Chase Qi | 09edc7f | 2016-08-18 13:18:50 +0800 | [diff] [blame] | 27 | |
Daniel Wagner | ce87480 | 2021-08-04 09:22:37 +0200 | [diff] [blame] | 28 | command -v lava-test-case > /dev/null 2>&1 |
Chase Qi | c1a3f88 | 2016-10-21 09:00:15 +0800 | [diff] [blame] | 29 | lava_test_case="$?" |
Daniel Wagner | ce87480 | 2021-08-04 09:22:37 +0200 | [diff] [blame] | 30 | command -v lava-test-set > /dev/null 2>&1 |
Oleksandr Terentiev | 03e82bc | 2018-11-28 04:38:52 -0800 | [diff] [blame] | 31 | lava_test_set="$?" |
Chase Qi | c1a3f88 | 2016-10-21 09:00:15 +0800 | [diff] [blame] | 32 | |
Chase Qi | 09edc7f | 2016-08-18 13:18:50 +0800 | [diff] [blame] | 33 | if [ -f "${RESULT_FILE}" ]; then |
Chase Qi | c763b9a | 2016-11-07 15:49:06 +0800 | [diff] [blame] | 34 | while read -r line; do |
Aníbal Limón | 34cf65d | 2020-10-05 14:09:23 -0500 | [diff] [blame] | 35 | if echo "${line}" | grep -iq -E ".* +(pass|fail|skip|unknown)$"; then |
Daniel Díaz | 372c505 | 2022-12-07 10:20:31 -0600 | [diff] [blame] | 36 | test="${line%% *}" |
| 37 | result="${line##* }" |
Chase Qi | 09edc7f | 2016-08-18 13:18:50 +0800 | [diff] [blame] | 38 | |
Antonio Terceiro | 45a4d4a | 2025-03-10 16:41:00 -0300 | [diff] [blame] | 39 | show_output "${test}" |
Chase Qi | c1a3f88 | 2016-10-21 09:00:15 +0800 | [diff] [blame] | 40 | if [ "${lava_test_case}" -eq 0 ]; then |
Chase Qi | 09edc7f | 2016-08-18 13:18:50 +0800 | [diff] [blame] | 41 | lava-test-case "${test}" --result "${result}" |
| 42 | else |
| 43 | echo "<TEST_CASE_ID=${test} RESULT=${result}>" |
| 44 | fi |
Aníbal Limón | 34cf65d | 2020-10-05 14:09:23 -0500 | [diff] [blame] | 45 | elif echo "${line}" | grep -iq -E ".*+ (pass|fail|skip|unknown)+ .*+"; then |
Chase Qi | 09edc7f | 2016-08-18 13:18:50 +0800 | [diff] [blame] | 46 | test="$(echo "${line}" | awk '{print $1}')" |
| 47 | result="$(echo "${line}" | awk '{print $2}')" |
| 48 | measurement="$(echo "${line}" | awk '{print $3}')" |
| 49 | units="$(echo "${line}" | awk '{print $4}')" |
| 50 | |
Antonio Terceiro | 45a4d4a | 2025-03-10 16:41:00 -0300 | [diff] [blame] | 51 | show_output "${test}" |
Chase Qi | c1a3f88 | 2016-10-21 09:00:15 +0800 | [diff] [blame] | 52 | if [ "${lava_test_case}" -eq 0 ]; then |
Nicolas Dechesne | 3d25d43 | 2017-01-19 15:47:09 +0100 | [diff] [blame] | 53 | if [ -n "${units}" ]; then |
| 54 | lava-test-case "${test}" --result "${result}" --measurement "${measurement}" --units "${units}" |
| 55 | else |
| 56 | lava-test-case "${test}" --result "${result}" --measurement "${measurement}" |
| 57 | fi |
Chase Qi | 09edc7f | 2016-08-18 13:18:50 +0800 | [diff] [blame] | 58 | else |
Chase Qi | b6e5458 | 2018-08-01 17:29:45 +0800 | [diff] [blame] | 59 | echo "<TEST_CASE_ID=${test} RESULT=${result} MEASUREMENT=${measurement} UNITS=${units}>" |
Chase Qi | 09edc7f | 2016-08-18 13:18:50 +0800 | [diff] [blame] | 60 | fi |
Milosz Wasilewski | 6015206 | 2020-03-02 18:53:29 +0000 | [diff] [blame] | 61 | elif echo "${line}" | grep -iq -E "^lava-test-set.*"; then |
Oleksandr Terentiev | 03e82bc | 2018-11-28 04:38:52 -0800 | [diff] [blame] | 62 | test_set_status="$(echo "${line}" | awk '{print $2}')" |
| 63 | test_set_name="$(echo "${line}" | awk '{print $3}')" |
| 64 | if [ "${lava_test_set}" -eq 0 ]; then |
| 65 | lava-test-set "${test_set_status}" "${test_set_name}" |
| 66 | else |
| 67 | if [ "${test_set_status}" = "start" ]; then |
Antonio Terceiro | 1161949 | 2025-04-17 10:28:30 -0300 | [diff] [blame] | 68 | signal "<LAVA_SIGNAL_TESTSET START ${test_set_name}>" |
Oleksandr Terentiev | 03e82bc | 2018-11-28 04:38:52 -0800 | [diff] [blame] | 69 | else |
Antonio Terceiro | 1161949 | 2025-04-17 10:28:30 -0300 | [diff] [blame] | 70 | signal "<LAVA_SIGNAL_TESTSET STOP>" |
Oleksandr Terentiev | 03e82bc | 2018-11-28 04:38:52 -0800 | [diff] [blame] | 71 | fi |
| 72 | fi |
Chase Qi | 09edc7f | 2016-08-18 13:18:50 +0800 | [diff] [blame] | 73 | fi |
| 74 | done < "${RESULT_FILE}" |
| 75 | else |
| 76 | echo "WARNING: result file is missing!" |
| 77 | fi |