brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 2898100 Raw
80 lines · bash
1#!/bin/sh2# 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 the7# editor (currently defaulting to "vi"), allowing the user to get an8# idea of what to search for in the console.log file.9#10# Usage: kvm-find-errors.sh directory11#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, 201817#18# Author: Paul E. McKenney <paulmck@linux.ibm.com>19 20rundir="${1}"21if test -z "$rundir" -o ! -d "$rundir"22then23	echo Directory "$rundir" not found.24	echo Usage: $0 directory25	exit 126fi27editor=${EDITOR-vi}28 29# Find builds with errors30files=31for i in ${rundir}/*/Make.out32do33	scenariodir="`dirname $i`"34	scenariobasedir="`echo ${scenariodir} | sed -e 's/\.[0-9]*$//'`"35	if grep -E -q "error:|warning:|^ld: .*undefined reference to" < $i36	then37		grep -E "error:|warning:|^ld: .*undefined reference to" < $i > $i.diags38		files="$files $i.diags $i"39	elif ! test -f ${scenariobasedir}/vmlinux && ! test -f ${scenariobasedir}/vmlinux.xz && ! test -f "${rundir}/re-run"40	then41		echo No ${scenariobasedir}/vmlinux file > $i.diags42		files="$files $i.diags $i"43	fi44done45if test -n "$files"46then47	$editor $files48	editorret=149else50	echo No build errors.51fi52if grep -q -e "--build-\?only" < ${rundir}/log && ! test -f "${rundir}/remote-log"53then54	echo Build-only run, no console logs to check.55	exit $editorret56fi57 58# Find console logs with errors59files=60for i in ${rundir}/*/console.log61do62	if test -r $i.diags63	then64		files="$files $i.diags $i"65	fi66done67if test -n "$files"68then69	$editor $files70	exit 171else72	echo No errors in console logs.73	if test -n "$editorret"74	then75		exit $editorret76	else77		exit 078	fi79fi80