torture: Make kvm-find-errors.sh notice missing vmlinux file
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 18 Jan 2022 23:40:49 +0000 (15:40 -0800)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 2 Feb 2022 01:25:41 +0000 (17:25 -0800)
Currently, an obtuse compiler diagnostic can fool kvm-find-errors.sh
into believing that the build was successful.  This commit therefore
adds a check for a missing vmlinux file.  Note that in the case of
repeated torture-test scenarios ("--configs '2*TREE01'"), the vmlinux
file will only be present in the first directory, that is, in TREE01
but not TREE01.2.

Link: https://lore.kernel.org/lkml/36bd91e4-8eda-5677-7fde-40295932a640@molgen.mpg.de/
Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh

index 2e9e9e2..5f682fc 100755 (executable)
@@ -30,10 +30,16 @@ editor=${EDITOR-vi}
 files=
 for i in ${rundir}/*/Make.out
 do
+       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
+       then
+               echo No ${scenariobasedir}/vmlinux file > $i.diags
+               files="$files $i.diags $i"
        fi
 done
 if test -n "$files"