xref: /linux/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
1#!/bin/bash
2#
3# Given the results directories for previous KVM-based torture runs,
4# check the build and console output for errors.  Given a directory
5# containing results directories, this recursively checks them all.
6#
7# Usage: kvm-recheck.sh resdir ...
8#
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, you can access it online at
21# http://www.gnu.org/licenses/gpl-2.0.html.
22#
23# Copyright (C) IBM Corporation, 2011
24#
25# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
26
27PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH
28. tools/testing/selftests/rcutorture/bin/functions.sh
29for rd in "$@"
30do
31	firsttime=1
32	dirs=`find $rd -name Make.defconfig.out -print | sort | sed -e 's,/[^/]*$,,' | sort -u`
33	for i in $dirs
34	do
35		if test -n "$firsttime"
36		then
37			firsttime=""
38			resdir=`echo $i | sed -e 's,/$,,' -e 's,/[^/]*$,,'`
39			head -1 $resdir/log
40		fi
41		TORTURE_SUITE="`cat $i/../TORTURE_SUITE`"
42		kvm-recheck-${TORTURE_SUITE}.sh $i
43		if test -f "$i/console.log"
44		then
45			configcheck.sh $i/.config $i/ConfigFragment
46			if test -r $i/Make.oldconfig.err
47			then
48				cat $i/Make.oldconfig.err
49			fi
50			parse-build.sh $i/Make.out $configfile
51			parse-torture.sh $i/console.log $configfile
52			parse-console.sh $i/console.log $configfile
53			if test -r $i/Warnings
54			then
55				cat $i/Warnings
56			fi
57		else
58			if test -f "$i/qemu-cmd"
59			then
60				print_bug qemu failed
61				echo "   $i"
62			elif test -f "$i/buildonly"
63			then
64				echo Build-only run, no boot/test
65				configcheck.sh $i/.config $i/ConfigFragment
66				parse-build.sh $i/Make.out $configfile
67			else
68				print_bug Build failed
69				echo "   $i"
70			fi
71		fi
72	done
73done
74