mirror of
https://github.com/torvalds/linux.git
synced 2026-04-30 20:42:33 -04:00
When running the default list of tests, the run summary of a successful (that is, failed to find any errors) run fits easily on a 24-line screen. But a run with something like "--configs '5*CFLIST'" will be 80 lines long, and it is all too easy to miss a failure message when scrolling back. This commit therefore prints out the number of runs with failing builds or runtime failures, but only if there are any such failures. For example, a run with a single build error and a single runtime error would print two lines like this: 1 runs with build errors. 1 runs with runtime errors. Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
87 lines
2.2 KiB
Bash
Executable File
87 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# Given the results directories for previous KVM-based torture runs,
|
|
# check the build and console output for errors. Given a directory
|
|
# containing results directories, this recursively checks them all.
|
|
#
|
|
# Usage: kvm-recheck.sh resdir ...
|
|
#
|
|
# Returns status reflecting the success or not of the last run specified.
|
|
#
|
|
# Copyright (C) IBM Corporation, 2011
|
|
#
|
|
# Authors: Paul E. McKenney <paulmck@linux.ibm.com>
|
|
|
|
T=/tmp/kvm-recheck.sh.$$
|
|
trap 'rm -f $T' 0 2
|
|
|
|
PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH
|
|
. functions.sh
|
|
for rd in "$@"
|
|
do
|
|
firsttime=1
|
|
dirs=`find $rd -name Make.defconfig.out -print | sort | sed -e 's,/[^/]*$,,' | sort -u`
|
|
for i in $dirs
|
|
do
|
|
if test -n "$firsttime"
|
|
then
|
|
firsttime=""
|
|
resdir=`echo $i | sed -e 's,/$,,' -e 's,/[^/]*$,,'`
|
|
head -1 $resdir/log
|
|
fi
|
|
TORTURE_SUITE="`cat $i/../TORTURE_SUITE`"
|
|
rm -f $i/console.log.*.diags
|
|
kvm-recheck-${TORTURE_SUITE}.sh $i
|
|
if test -f "$i/qemu-retval" && test "`cat $i/qemu-retval`" -ne 0 && test "`cat $i/qemu-retval`" -ne 137
|
|
then
|
|
echo QEMU error, output:
|
|
cat $i/qemu-output
|
|
elif test -f "$i/console.log"
|
|
then
|
|
if test -f "$i/qemu-retval" && test "`cat $i/qemu-retval`" -eq 137
|
|
then
|
|
echo QEMU killed
|
|
fi
|
|
configcheck.sh $i/.config $i/ConfigFragment
|
|
if test -r $i/Make.oldconfig.err
|
|
then
|
|
cat $i/Make.oldconfig.err
|
|
fi
|
|
parse-build.sh $i/Make.out $configfile
|
|
parse-console.sh $i/console.log $configfile
|
|
if test -r $i/Warnings
|
|
then
|
|
cat $i/Warnings
|
|
fi
|
|
else
|
|
if test -f "$i/qemu-cmd"
|
|
then
|
|
print_bug qemu failed
|
|
echo " $i"
|
|
elif test -f "$i/buildonly"
|
|
then
|
|
echo Build-only run, no boot/test
|
|
configcheck.sh $i/.config $i/ConfigFragment
|
|
parse-build.sh $i/Make.out $configfile
|
|
else
|
|
print_bug Build failed
|
|
echo " $i"
|
|
fi
|
|
fi
|
|
done
|
|
done
|
|
EDITOR=echo kvm-find-errors.sh "${@: -1}" > $T 2>&1
|
|
ret=$?
|
|
builderrors="`tr ' ' '\012' < $T | grep -c '/Make.out.diags'`"
|
|
if test "$builderrors" -gt 0
|
|
then
|
|
echo $builderrors runs with build errors.
|
|
fi
|
|
runerrors="`tr ' ' '\012' < $T | grep -c '/console.log.diags'`"
|
|
if test "$runerrors" -gt 0
|
|
then
|
|
echo $runerrors runs with runtime errors.
|
|
fi
|
|
exit $ret
|