diff options
Diffstat (limited to 'send-to-lava.sh')
-rwxr-xr-x | send-to-lava.sh | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/send-to-lava.sh b/send-to-lava.sh new file mode 100755 index 0000000..fdfdf78 --- /dev/null +++ b/send-to-lava.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +RESULT_FILE="$1" + +which lava-test-case > /dev/null 2>&1 +lava_test_case="$?" +which lava-test-set > /dev/null 2>&1 +lava_test_set="$?" + +if [ -f "${RESULT_FILE}" ]; then + while read -r line; do + if echo "${line}" | egrep -iq ".* +(pass|fail|skip)$"; then + test="$(echo "${line}" | awk '{print $1}')" + result="$(echo "${line}" | awk '{print $2}')" + + if [ "${lava_test_case}" -eq 0 ]; then + lava-test-case "${test}" --result "${result}" + else + echo "<TEST_CASE_ID=${test} RESULT=${result}>" + fi + elif echo "${line}" | egrep -iq ".*+ (pass|fail|skip)+ .*+"; then + test="$(echo "${line}" | awk '{print $1}')" + result="$(echo "${line}" | awk '{print $2}')" + measurement="$(echo "${line}" | awk '{print $3}')" + units="$(echo "${line}" | awk '{print $4}')" + + if [ "${lava_test_case}" -eq 0 ]; then + if [ -n "${units}" ]; then + lava-test-case "${test}" --result "${result}" --measurement "${measurement}" --units "${units}" + else + lava-test-case "${test}" --result "${result}" --measurement "${measurement}" + fi + else + echo "<TEST_CASE_ID=${test} RESULT=${result} MEASUREMENT=${measurement} UNITS=${units}>" + fi + elif echo "${line}" | egrep -iq "^lava-test-set.*"; then + test_set_status="$(echo "${line}" | awk '{print $2}')" + test_set_name="$(echo "${line}" | awk '{print $3}')" + if [ "${lava_test_set}" -eq 0 ]; then + lava-test-set "${test_set_status}" "${test_set_name}" + else + if [ "${test_set_status}" = "start" ]; then + echo "<LAVA_SIGNAL_TESTSET START ${test_set_name}>" + else + echo "<LAVA_SIGNAL_TESTSET STOP>" + fi + fi + fi + done < "${RESULT_FILE}" +else + echo "WARNING: result file is missing!" +fi |