Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / tools / testing / selftests / rcutorture / bin / kvm-recheck.sh
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0+
3 #
4 # Given the results directories for previous KVM-based torture runs,
5 # check the build and console output for errors.  Given a directory
6 # containing results directories, this recursively checks them all.
7 #
8 # Usage: kvm-recheck.sh resdir ...
9 #
10 # Returns status reflecting the success or not of the last run specified.
11 #
12 # Copyright (C) IBM Corporation, 2011
13 #
14 # Authors: Paul E. McKenney <paulmck@linux.ibm.com>
15
16 PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH
17 . functions.sh
18 for rd in "$@"
19 do
20         firsttime=1
21         dirs=`find $rd -name Make.defconfig.out -print | sort | sed -e 's,/[^/]*$,,' | sort -u`
22         for i in $dirs
23         do
24                 if test -n "$firsttime"
25                 then
26                         firsttime=""
27                         resdir=`echo $i | sed -e 's,/$,,' -e 's,/[^/]*$,,'`
28                         head -1 $resdir/log
29                 fi
30                 TORTURE_SUITE="`cat $i/../TORTURE_SUITE`"
31                 rm -f $i/console.log.*.diags
32                 kvm-recheck-${TORTURE_SUITE}.sh $i
33                 if test -f "$i/qemu-retval" && test "`cat $i/qemu-retval`" -ne 0 && test "`cat $i/qemu-retval`" -ne 137
34                 then
35                         echo QEMU error, output:
36                         cat $i/qemu-output
37                 elif test -f "$i/console.log"
38                 then
39                         if test -f "$i/qemu-retval" && test "`cat $i/qemu-retval`" -eq 137
40                         then
41                                 echo QEMU killed
42                         fi
43                         configcheck.sh $i/.config $i/ConfigFragment
44                         if test -r $i/Make.oldconfig.err
45                         then
46                                 cat $i/Make.oldconfig.err
47                         fi
48                         parse-build.sh $i/Make.out $configfile
49                         parse-console.sh $i/console.log $configfile
50                         if test -r $i/Warnings
51                         then
52                                 cat $i/Warnings
53                         fi
54                 else
55                         if test -f "$i/qemu-cmd"
56                         then
57                                 print_bug qemu failed
58                                 echo "   $i"
59                         elif test -f "$i/buildonly"
60                         then
61                                 echo Build-only run, no boot/test
62                                 configcheck.sh $i/.config $i/ConfigFragment
63                                 parse-build.sh $i/Make.out $configfile
64                         else
65                                 print_bug Build failed
66                                 echo "   $i"
67                         fi
68                 fi
69         done
70 done
71 EDITOR=echo kvm-find-errors.sh "${@: -1}" > /dev/null 2>&1