#!/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> 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}" > /dev/null 2>&1 |