Generate results.yml to follow the defined result format

https://docs.fedoraproject.org/en-US/ci/standard-test-interface/#_results_format
This commit is contained in:
Takao Fujiwara 2021-08-28 09:43:35 +09:00
parent 611fd049eb
commit dbcbd82fc1
2 changed files with 67 additions and 14 deletions

View File

@ -0,0 +1,66 @@
#!/bin/bash
TEST_LOG="test.log"
TEST_RUN_IN_RAWHIDE="1"
if [ $# -gt 0 ] ; then
TEST_LOG="$1"
TEST_RUN_IN_RAWHIDE="$2"
fi
gen_results()
{
TEST_RUNTIME="$1"
TEST_STATUS="$2"
TEST_STATUS_UPPER="$(echo "$TEST_STATUS" | tr '[:lower:]' '[:upper:]')"
cat > results.xml << _EOF
results:
- test: results
result: $TEST_STATUS
runtime: $TEST_RUNTIME
logs:
- ${TEST_STATUS_UPPER}-str_results.log
_EOF
DIR=$(dirname "$TEST_LOG")
if [ x"$TEST_LOG" != x ] ; then
cp "$TEST_LOG" "$DIR/${TEST_STATUS_UPPER}-str_results.log"
else
touch "$DIR/${TEST_STATUS_UPPER}-str_results.log"
fi
if [ x"$DIR" != x. ] ; then
mv results.xml "$DIR"
fi
}
if [ $TEST_RUN_IN_RAWHIDE -eq 0 ] ; then
IS_RAWHIDE="$(grep -i rawhide /etc/fedora-release)"
if [ x"$IS_RAWHIDE" != x ] ; then
gen_results "0" "pass"
exit 0
fi
fi
if [ ! -f $TEST_LOG ] ; then
gen_results "0" "fail"
echo ERROR
else
FAIL="$(grep "^FAIL: " $TEST_LOG | grep -v 'FAIL: 0$')"
RUNTIME_FAIL="$(grep -v 'frame' $TEST_LOG | grep "^FAIL: " | sed -e "s/FAIL: //")"
RUNTIME_PASS="$(grep -v 'frame' $TEST_LOG | grep "^PASS: " | sed -e "s/PASS: //")"
if [ x"$RUNTIME_FAIL" = x ] ; then
RUNTIME_FAIL="0"
fi
if [ x"$RUNTIME_PASS" = x ] ; then
RUNTIME_PASS="0"
fi
RUNTIME="$(expr $RUNTIME_FAIL + $RUNTIME_PASS)"
if [ x"$FAIL" != x ] ; then
gen_results "$RUNTIME" "fail"
echo ERROR
else
gen_results "$RUNTIME" "pass"
fi
fi

View File

@ -114,20 +114,7 @@
echo "#"
- name: Check the results
shell: |
IS_RAWHIDE=`grep -i rawhide /etc/fedora-release`
if [ x"$IS_RAWHIDE" != x ] ; then
exit 0
fi
log="{{ remote_artifacts }}/test.log"
if [ ! -f $log ] ; then
echo ERROR
else
FAIL=`grep "^FAIL: " $log | grep -v 'FAIL: 0$'`
if [ x"$FAIL" != x ] ; then
echo ERROR
fi
fi
script: check-results.sh "{{ remote_artifacts }}/test.log" "0"
register: test_fails
failed_when: False