Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / tools / testing / selftests / rcutorture / bin / parse-build.sh
blob5a0b7ffcf047acb55c4eb5c275a42f3230693210
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0+
4 # Check the build output from an rcutorture run for goodness.
5 # The "file" is a pathname on the local system, and "title" is
6 # a text string for error-message purposes.
8 # The file must contain kernel build output.
10 # Usage: parse-build.sh file title
12 # Copyright (C) IBM Corporation, 2011
14 # Authors: Paul E. McKenney <paulmck@linux.ibm.com>
16 F=$1
17 title=$2
18 T="`mktemp -d ${TMPDIR-/tmp}/parse-build.sh.XXXXXX`"
19 trap 'rm -rf $T' 0
21 . functions.sh
23 if grep -q CC < $F || test -n "$TORTURE_TRUST_MAKE" || grep -qe --trust-make < `dirname $F`/../log
24 then
26 else
27 print_bug $title no build
28 exit 1
31 if grep -q "error:" < $F
32 then
33 print_bug $title build errors:
34 grep "error:" < $F
35 exit 2
38 grep warning: < $F > $T/warnings
39 grep "include/linux/*rcu*\.h:" $T/warnings > $T/hwarnings
40 grep "kernel/rcu/[^/]*:" $T/warnings > $T/cwarnings
41 grep "^ld: .*undefined reference to" $T/warnings | head -1 > $T/ldwarnings
42 cat $T/hwarnings $T/cwarnings $T/ldwarnings > $T/rcuwarnings
43 if test -s $T/rcuwarnings
44 then
45 print_warning $title build errors:
46 cat $T/rcuwarnings
47 exit 2
49 exit 0