8d5d041590
Find new home for downstream RHEL tests. Upstream them. The set of tests used for fedora gating stays intact: The gating tests are only those having the tier1 tag set in their main.fmf file. The testplan plans/ci.fmf filters the others out from gating. The set of Fedora gating tests stays the same as it was before this change.
131 lines
3.4 KiB
Bash
Executable File
131 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
HASHES=$( ls | awk -F\. '{print $4}' | sort -u )
|
|
ARCHES=$( ls *log | awk -F- '{print $(NF-1) }' | awk -F. '{print $NF}' | sort -u )
|
|
|
|
declare -A MAXTESTS
|
|
|
|
for p in $HASHES; do
|
|
MAXTESTS[$p]=0
|
|
for a in $ARCHES; do
|
|
c=$( ls *log | grep $p | grep $a | wc -l )
|
|
test $c -gt ${MAXTESTS[$p]} && MAXTESTS[$p]=$c
|
|
done
|
|
done
|
|
|
|
TESTCASES=$( cat *log | awk '/^Running\ \.\/systemtap/ {print $2}' | sort -u )
|
|
|
|
TEMPFILE=$( mktemp )
|
|
|
|
function getCaseResults() {
|
|
casename=$1
|
|
logfile=$2
|
|
casename=$( echo $casename | tr "/" "." )
|
|
cmd="cat $logfile | sed -e '/$casename/,/^Running/ !d'"
|
|
eval "$cmd" | head -n -1
|
|
}
|
|
|
|
function getWorstResult() {
|
|
results="$1"
|
|
retval='UNKNOWN'
|
|
echo "$results" | grep -q '^PASS' && retval='PASS'
|
|
echo "$results" | grep -q '^KPASS' && retval='KPASS'
|
|
echo "$results" | grep -q '^XPASS' && retval='XPASS'
|
|
echo "$results" | grep -q '^UNTESTED' && retval='UNTESTED'
|
|
echo "$results" | grep -q '^KFAIL' && retval='KFAIL'
|
|
echo "$results" | grep -q '^XFAIL' && retval='XFAIL'
|
|
echo "$results" | grep -q '^FAIL' && retval='FAIL'
|
|
echo "$results" | grep -q '^ERROR' && retval='ERROR'
|
|
echo $retval
|
|
}
|
|
|
|
function getResult() {
|
|
casename=$1
|
|
logfile=$2
|
|
worstResult=$( getWorstResult "$( getCaseResults "$casename" "$logfile" )" )
|
|
if test -s $logfile; then
|
|
loglink="http://nfs.englab.brq.redhat.com/scratch/mcermak/testlogs/out/$( echo $logfile | sed 's/log/tar\.xz/' )"
|
|
echo "[[$loglink|$worstResult]]"
|
|
else
|
|
echo $worstResult
|
|
fi
|
|
}
|
|
|
|
function getLogs() {
|
|
package=$1
|
|
arch=$2
|
|
logcnt=$3
|
|
availogcont=$( ls *log | grep $package | grep $arch | wc -l )
|
|
remainlogcnt=$(( $logcnt - $availogcont ))
|
|
logs=$( ls *log | grep $package | grep $arch )
|
|
for i in $( seq 1 $remainlogcnt ); do
|
|
logs="$logs $TEMPFILE"
|
|
done
|
|
echo $logs
|
|
}
|
|
|
|
function colorizeResult() {
|
|
result=$1
|
|
if echo $result | egrep -q '(KFAIL|XFAIL)'; then
|
|
echo "<#a2eea2> $result"
|
|
elif echo $result | egrep -q '(FAIL|ERROR)'; then
|
|
echo "<#f30000> $result"
|
|
elif echo $result | egrep -q '(UNKNOWN)'; then
|
|
echo "<#ffffff> $result"
|
|
else
|
|
echo "<#a2eea2> $result"
|
|
fi
|
|
}
|
|
|
|
function getResultSet() {
|
|
package=$1
|
|
arch=$2
|
|
testcase=$3
|
|
#echo -n "|| $package ($arch) "
|
|
echo -n "|| '''$arch''' "
|
|
for logfile in $( getLogs "$package" "$arch" ${MAXTESTS[$package]} ); do
|
|
result=$( getResult "$testcase" "$logfile" )
|
|
echo -n "||$( colorizeResult "$result" ) "
|
|
done
|
|
}
|
|
|
|
function getBugsForTestcase() {
|
|
testcase=$1
|
|
testcase=$( echo $testcase | sed 's/^\.\///' | tr "/" "." )
|
|
cmd="awk '/$testcase/ {print \$2}' bugs.txt"
|
|
eval "$cmd"
|
|
}
|
|
|
|
function getBugLinksForTestcase() {
|
|
bznos="$1"
|
|
if ! test -z "$bznos"; then
|
|
echo
|
|
for bzno in $bznos; do
|
|
echo -e "[[https://bugzilla.redhat.com/show_bug.cgi?id=$bzno|bz$bzno]]"
|
|
done
|
|
echo
|
|
fi
|
|
}
|
|
|
|
echo -n "== "
|
|
first=1
|
|
for package in $HASHES; do
|
|
test $first -eq 0 && echo -n "<-> "
|
|
echo -n "$package "
|
|
first=0
|
|
done
|
|
echo " =="
|
|
|
|
for testcase in $TESTCASES; do
|
|
echo -e "\n=== $testcase ===\n"
|
|
getBugLinksForTestcase "$( getBugsForTestcase "$testcase" )"
|
|
for arch in $ARCHES; do
|
|
for __hash in $HASHES; do
|
|
getResultSet $__hash $arch $testcase
|
|
done
|
|
echo " ||"
|
|
done
|
|
done
|
|
|
|
|