xref: /linux/tools/testing/selftests/rcutorture/bin/kvm-find-errors.sh (revision b7019ac550eb3916f34d79db583e9b7ea2524afa)
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#
15# Copyright (C) IBM Corporation, 2018
16#
17# Author: Paul E. McKenney <paulmck@linux.ibm.com>
18
19rundir="${1}"
20if test -z "$rundir" -o ! -d "$rundir"
21then
22	echo Usage: $0 directory
23fi
24editor=${EDITOR-vi}
25
26# Find builds with errors
27files=
28for i in ${rundir}/*/Make.out
29do
30	if egrep -q "error:|warning:" < $i
31	then
32		egrep "error:|warning:" < $i > $i.diags
33		files="$files $i.diags $i"
34	fi
35done
36if test -n "$files"
37then
38	$editor $files
39else
40	echo No build errors.
41fi
42if grep -q -e "--buildonly" < ${rundir}/log
43then
44	echo Build-only run, no console logs to check.
45fi
46
47# Find console logs with errors
48files=
49for i in ${rundir}/*/console.log
50do
51	if test -r $i.diags
52	then
53		files="$files $i.diags $i"
54	fi
55done
56if test -n "$files"
57then
58	$editor $files
59else
60	echo No errors in console logs.
61fi
62