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 16PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH 17. functions.sh 18for rd in "$@" 19do 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 70done 71EDITOR=echo kvm-find-errors.sh "${@: -1}" > /dev/null 2>&1 72