]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
torture: Add a script to edit output from failed runs
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 26 Feb 2018 21:18:36 +0000 (13:18 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 15 May 2018 17:31:52 +0000 (10:31 -0700)
This commit adds a script that allows viewing the build and/or
console output from failed rcutorture, locktorture, or rcuperf runs.
This replaces a time-honored but inefficient manual procedure that uses
cut and paste.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Nicholas Piggin <npiggin@gmail.com>
tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh [new file with mode: 0755]

diff --git a/tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh b/tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh
new file mode 100755 (executable)
index 0000000..7742fac
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/sh
+#
+# 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".
+
+rundir="${1}"
+if test -z "$rundir" -o ! -d "$rundir"
+then
+       echo Usage: $0 directory
+fi
+editor=${EDITOR-vi}
+
+# Find builds with errors
+files=
+for i in ${rundir}/*/Make.out
+do
+       if grep -q "error:" < $i
+       then
+               files="$files $i"
+       fi
+done
+if test -n "$files"
+then
+       $editor $files
+else
+       echo No build errors.
+fi
+if grep -q -e "--buildonly" < ${rundir}/log
+then
+       echo Build-only run, no console logs to check.
+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
+else
+       echo No errors in console logs.
+fi