cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

kvm-find-errors.sh (1941B)


      1#!/bin/sh
      2# SPDX-License-Identifier: GPL-2.0+
      3#
      4# Invoke a text editor on all console.log files for all runs with diagnostics,
      5# that is, on all such files having a console.log.diags counterpart.
      6# Note that both console.log.diags and console.log are passed to the
      7# editor (currently defaulting to "vi"), allowing the user to get an
      8# idea of what to search for in the console.log file.
      9#
     10# Usage: kvm-find-errors.sh directory
     11#
     12# The "directory" above should end with the date/time directory, for example,
     13# "tools/testing/selftests/rcutorture/res/2018.02.25-14:27:27".
     14# Returns error status reflecting the success (or not) of the specified run.
     15#
     16# Copyright (C) IBM Corporation, 2018
     17#
     18# Author: Paul E. McKenney <paulmck@linux.ibm.com>
     19
     20rundir="${1}"
     21if test -z "$rundir" -o ! -d "$rundir"
     22then
     23	echo Directory "$rundir" not found.
     24	echo Usage: $0 directory
     25	exit 1
     26fi
     27editor=${EDITOR-vi}
     28
     29# Find builds with errors
     30files=
     31for i in ${rundir}/*/Make.out
     32do
     33	scenariodir="`dirname $i`"
     34	scenariobasedir="`echo ${scenariodir} | sed -e 's/\.[0-9]*$//'`"
     35	if egrep -q "error:|warning:|^ld: .*undefined reference to" < $i
     36	then
     37		egrep "error:|warning:|^ld: .*undefined reference to" < $i > $i.diags
     38		files="$files $i.diags $i"
     39	elif ! test -f ${scenariobasedir}/vmlinux && ! test -f "${rundir}/re-run"
     40	then
     41		echo No ${scenariobasedir}/vmlinux file > $i.diags
     42		files="$files $i.diags $i"
     43	fi
     44done
     45if test -n "$files"
     46then
     47	$editor $files
     48	editorret=1
     49else
     50	echo No build errors.
     51fi
     52if grep -q -e "--build-\?only" < ${rundir}/log && ! test -f "${rundir}/remote-log"
     53then
     54	echo Build-only run, no console logs to check.
     55	exit $editorret
     56fi
     57
     58# Find console logs with errors
     59files=
     60for i in ${rundir}/*/console.log
     61do
     62	if test -r $i.diags
     63	then
     64		files="$files $i.diags $i"
     65	fi
     66done
     67if test -n "$files"
     68then
     69	$editor $files
     70	exit 1
     71else
     72	echo No errors in console logs.
     73	if test -n "$editorret"
     74	then
     75		exit $editorret
     76	else
     77		exit 0
     78	fi
     79fi