| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/bin/sh
- # SPDX-License-Identifier: GPL-2.0+
- #
- # Invoke a text editor on all console.log files for all runs with diagnostics,
- # that is, on all such files having a console.log.diags counterpart.
- # Note that both console.log.diags and console.log are passed to the
- # editor (currently defaulting to "vi"), allowing the user to get an
- # idea of what to search for in the console.log file.
- #
- # Usage: kvm-find-errors.sh directory
- #
- # The "directory" above should end with the date/time directory, for example,
- # "tools/testing/selftests/rcutorture/res/2018.02.25-14:27:27".
- # Returns error status reflecting the success (or not) of the specified run.
- #
- # Copyright (C) IBM Corporation, 2018
- #
- # Author: Paul E. McKenney <paulmck@linux.ibm.com>
- rundir="${1}"
- if test -z "$rundir" -o ! -d "$rundir"
- then
- echo Directory "$rundir" not found.
- echo Usage: $0 directory
- exit 1
- fi
- editor=${EDITOR-vi}
- # Find builds with errors
- files=
- for i in ${rundir}/*/Make.out
- do
- scenariodir="`dirname $i`"
- scenariobasedir="`echo ${scenariodir} | sed -e 's/\.[0-9]*$//'`"
- if grep -E -q "error:|warning:|^ld: .*undefined reference to" < $i
- then
- grep -E "error:|warning:|^ld: .*undefined reference to" < $i > $i.diags
- files="$files $i.diags $i"
- elif ! test -f ${scenariobasedir}/vmlinux && ! test -f ${scenariobasedir}/vmlinux.xz && ! test -f "${rundir}/re-run"
- then
- echo No ${scenariobasedir}/vmlinux file > $i.diags
- files="$files $i.diags $i"
- fi
- done
- if test -n "$files"
- then
- $editor $files
- editorret=1
- else
- echo No build errors.
- fi
- if grep -q -e "--build-\?only" < ${rundir}/log && ! test -f "${rundir}/remote-log"
- then
- echo Build-only run, no console logs to check.
- exit $editorret
- fi
- # Find console logs with errors
- files=
- for i in ${rundir}/*/console.log
- do
- if test -r $i.diags
- then
- files="$files $i.diags $i"
- fi
- done
- if test -n "$files"
- then
- $editor $files
- exit 1
- else
- echo No errors in console logs.
- if test -n "$editorret"
- then
- exit $editorret
- else
- exit 0
- fi
- fi
|