diff options
Diffstat (limited to 'tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh')
-rwxr-xr-x | tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh b/tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh index 1871d00bccd7..88983cba7956 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh @@ -20,7 +20,9 @@ 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} @@ -28,21 +30,29 @@ editor=${EDITOR-vi} files= for i in ${rundir}/*/Make.out do - if egrep -q "error:|warning:" < $i + scenariodir="`dirname $i`" + scenariobasedir="`echo ${scenariodir} | sed -e 's/\.[0-9]*$//'`" + if egrep -q "error:|warning:|^ld: .*undefined reference to" < $i + then + egrep "error:|warning:|^ld: .*undefined reference to" < $i > $i.diags + files="$files $i.diags $i" + elif ! test -f ${scenariobasedir}/vmlinux && ! test -f "${rundir}/re-run" then - egrep "error:|warning:" < $i > $i.diags + 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 "--buildonly" < ${rundir}/log +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 @@ -60,5 +70,10 @@ then exit 1 else echo No errors in console logs. - exit 0 + if test -n "$editorret" + then + exit $editorret + else + exit 0 + fi fi |