|
2 | 2 |
|
3 | 3 | RESULT_FILE="$1"
|
4 | 4 |
|
5 |
| -command -v lava-test-case > /dev/null 2>&1 |
| 5 | +command -v lava-test-case >/dev/null 2>&1 |
6 | 6 | lava_test_case="$?"
|
7 |
| -command -v lava-test-set > /dev/null 2>&1 |
| 7 | + |
| 8 | +command -v lava-test-set >/dev/null 2>&1 |
8 | 9 | lava_test_set="$?"
|
9 | 10 |
|
10 | 11 | if [ -f "${RESULT_FILE}" ]; then
|
11 | 12 | while read -r line; do
|
12 |
| - if echo "${line}" | grep -iq -E ".* +(pass|fail|skip|unknown)$"; then |
| 13 | + # Skip empty lines |
| 14 | + [ -z "$line" ] && continue |
| 15 | + |
| 16 | + # Handle plain test case results: TESTNAME RESULT |
| 17 | + if echo "$line" | grep -iqE "^[^ ]+ +(pass|fail|skip|unknown)$"; then |
13 | 18 | test="${line%% *}"
|
14 | 19 | result="${line##* }"
|
15 | 20 |
|
16 |
| - if [ "${lava_test_case}" -eq 0 ]; then |
17 |
| - lava-test-case "${test}" --result "${result}" |
| 21 | + if [ "$lava_test_case" -eq 0 ]; then |
| 22 | + lava-test-case "$test" --result "$result" |
18 | 23 | else
|
19 |
| - echo "<TEST_CASE_ID=${test} RESULT=${result}>" |
| 24 | + echo "<<<LAVA_SIGNAL_TESTCASE TEST_CASE_ID=${test} RESULT=${result}>>>" |
20 | 25 | fi
|
21 |
| - elif echo "${line}" | grep -iq -E ".*+ (pass|fail|skip|unknown)+ .*+"; then |
22 |
| - test="$(echo "${line}" | awk '{print $1}')" |
23 |
| - result="$(echo "${line}" | awk '{print $2}')" |
24 |
| - measurement="$(echo "${line}" | awk '{print $3}')" |
25 |
| - units="$(echo "${line}" | awk '{print $4}')" |
26 |
| - |
27 |
| - if [ "${lava_test_case}" -eq 0 ]; then |
28 |
| - if [ -n "${units}" ]; then |
29 |
| - lava-test-case "${test}" --result "${result}" --measurement "${measurement}" --units "${units}" |
| 26 | + |
| 27 | + # Handle test case with measurement |
| 28 | + elif echo "$line" | grep -iqE "^[^ ]+ +(pass|fail|skip|unknown) +[0-9.]+( +[a-zA-Z/%]+)?$"; then |
| 29 | + test=$(echo "$line" | awk '{print $1}') |
| 30 | + result=$(echo "$line" | awk '{print $2}') |
| 31 | + measurement=$(echo "$line" | awk '{print $3}') |
| 32 | + units=$(echo "$line" | awk '{print $4}') |
| 33 | + |
| 34 | + if [ "$lava_test_case" -eq 0 ]; then |
| 35 | + if [ -n "$units" ]; then |
| 36 | + lava-test-case "$test" --result "$result" --measurement "$measurement" --units "$units" |
30 | 37 | else
|
31 |
| - lava-test-case "${test}" --result "${result}" --measurement "${measurement}" |
| 38 | + lava-test-case "$test" --result "$result" --measurement "$measurement" |
32 | 39 | fi
|
33 | 40 | else
|
34 |
| - echo "<TEST_CASE_ID=${test} RESULT=${result} MEASUREMENT=${measurement} UNITS=${units}>" |
| 41 | + echo "<<<LAVA_SIGNAL_TESTCASE TEST_CASE_ID=${test} RESULT=${result} MEASUREMENT=${measurement} UNITS=${units}>>>" |
35 | 42 | fi
|
36 |
| - elif echo "${line}" | grep -iq -E "^lava-test-set.*"; then |
37 |
| - test_set_status="$(echo "${line}" | awk '{print $2}')" |
38 |
| - test_set_name="$(echo "${line}" | awk '{print $3}')" |
39 |
| - if [ "${lava_test_set}" -eq 0 ]; then |
40 |
| - lava-test-set "${test_set_status}" "${test_set_name}" |
| 43 | + |
| 44 | + # Handle test set signals |
| 45 | + elif echo "$line" | grep -iqE "^lava-test-set (start|stop) "; then |
| 46 | + status=$(echo "$line" | awk '{print $2}') |
| 47 | + setname=$(echo "$line" | awk '{print $3}') |
| 48 | + |
| 49 | + if [ "$lava_test_set" -eq 0 ]; then |
| 50 | + lava-test-set "$status" "$setname" |
41 | 51 | else
|
42 |
| - if [ "${test_set_status}" = "start" ]; then |
43 |
| - echo "<LAVA_SIGNAL_TESTSET START ${test_set_name}>" |
| 52 | + if [ "$status" = "start" ]; then |
| 53 | + echo "<<<LAVA_SIGNAL_TESTSET START ${setname}>>>" |
44 | 54 | else
|
45 |
| - echo "<LAVA_SIGNAL_TESTSET STOP>" |
| 55 | + echo "<<<LAVA_SIGNAL_TESTSET STOP>>>" |
46 | 56 | fi
|
47 | 57 | fi
|
| 58 | + else |
| 59 | + echo "WARNING: Skipping malformed line: $line" |
48 | 60 | fi
|
49 |
| - done < "${RESULT_FILE}" |
| 61 | + done < "$RESULT_FILE" |
50 | 62 | else
|
51 |
| - echo "WARNING: result file is missing!" |
| 63 | + echo "WARNING: result file is missing: $RESULT_FILE" |
52 | 64 | fi
|
0 commit comments