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 20 rundir="${1}" 21 if test -z "$rundir" -o ! -d "$rundir" 22 then 23 echo Directory "$rundir" not found. 24 echo Usage: $0 directory 25 exit 1 26 fi 27 editor=${EDITOR-vi} 28 29 # Find builds with errors 30 files= 31 for i in ${rundir}/*/Make.out 32 do 33 scenariodir="`dirname $i`" 34 scenariobasedir="`echo ${scenariodir} | sed -e 's/\.[0-9]*$//'`" 35 if grep -E -q "error:|warning:|^ld: .*undefined reference to" < $i 36 then 37 grep -E "error:|warning:|^ld: .*undefined reference to" < $i > $i.diags 38 files="$files $i.diags $i" 39 elif ! test -f ${scenariobasedir}/vmlinux && ! test -f ${scenariobasedir}/vmlinux.xz && ! test -f "${rundir}/re-run" 40 then 41 echo No ${scenariobasedir}/vmlinux file > $i.diags 42 files="$files $i.diags $i" 43 fi 44 done 45 if test -n "$files" 46 then 47 $editor $files 48 editorret=1 49 else 50 echo No build errors. 51 fi 52 if grep -q -e "--build-\?only" < ${rundir}/log && ! test -f "${rundir}/remote-log" 53 then 54 echo Build-only run, no console logs to check. 55 exit $editorret 56 fi 57 58 # Find console logs with errors 59 files= 60 for i in ${rundir}/*/console.log 61 do 62 if test -r $i.diags 63 then 64 files="$files $i.diags $i" 65 fi 66 done 67 if test -n "$files" 68 then 69 $editor $files 70 exit 1 71 else 72 echo No errors in console logs. 73 if test -n "$editorret" 74 then 75 exit $editorret 76 else 77 exit 0 78 fi 79 fi
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.