1#!/bin/bash
2#
3# Check the build output from an rcutorture run for goodness.
4# The "file" is a pathname on the local system, and "title" is
5# a text string for error-message purposes.
6#
7# The file must contain kernel build output.
8#
9# Usage: parse-build.sh file title
10#
11# This program is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 2 of the License, or
14# (at your option) any later version.
15#
16# This program is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19# GNU General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with this program; if not, you can access it online at
23# http://www.gnu.org/licenses/gpl-2.0.html.
24#
25# Copyright (C) IBM Corporation, 2011
26#
27# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
28
29F=$1
30title=$2
31T=/tmp/parse-build.sh.$$
32trap 'rm -rf $T' 0
33mkdir $T
34
35. functions.sh
36
37if grep -q CC < $F
38then
39	:
40else
41	print_bug $title no build
42	exit 1
43fi
44
45if grep -q "error:" < $F
46then
47	print_bug $title build errors:
48	grep "error:" < $F
49	exit 2
50fi
51
52grep warning: < $F > $T/warnings
53grep "include/linux/*rcu*\.h:" $T/warnings > $T/hwarnings
54grep "kernel/rcu/[^/]*:" $T/warnings > $T/cwarnings
55cat $T/hwarnings $T/cwarnings > $T/rcuwarnings
56if test -s $T/rcuwarnings
57then
58	print_warning $title build errors:
59	cat $T/rcuwarnings
60	exit 2
61fi
62exit 0
63