From: "Paul E. McKenney" <paul...@linux.vnet.ibm.com>

The output of the rcutorture scripts often requires interpretation, so
this commit simplifies this interpretation by tagging messages as
BUGs (colored red) or WARNINGs (colored yellow).

Reported-by: Ingo Molnar <mi...@kernel.org>
Signed-off-by: Paul E. McKenney <paul...@linux.vnet.ibm.com>
Cc: Greg KH <gre...@linuxfoundation.org>
---
 tools/testing/selftests/rcutorture/bin/functions.sh    | 16 ++++++++++++++++
 .../testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh |  5 ++---
 tools/testing/selftests/rcutorture/bin/parse-build.sh  | 18 ++++++++++++++----
 .../testing/selftests/rcutorture/bin/parse-console.sh  |  4 +++-
 .../selftests/rcutorture/bin/parse-rcutorture.sh       | 10 ++++++----
 5 files changed, 41 insertions(+), 12 deletions(-)

diff --git a/tools/testing/selftests/rcutorture/bin/functions.sh 
b/tools/testing/selftests/rcutorture/bin/functions.sh
index d0d19ebd2a94..963b6f04d4ef 100644
--- a/tools/testing/selftests/rcutorture/bin/functions.sh
+++ b/tools/testing/selftests/rcutorture/bin/functions.sh
@@ -134,6 +134,22 @@ identify_qemu_vcpus () {
        lscpu | grep '^CPU(s):' | sed -e 's/CPU(s)://'
 }
 
+# print_bug
+#
+# Prints "BUG: " in red followed by remaining arguments
+print_bug () {
+       printf '\033[031mBUG: \033[m'
+       echo $*
+}
+
+# print_warning
+#
+# Prints "WARNING: " in yellow followed by remaining arguments
+print_warning () {
+       printf '\033[033mWARNING: \033[m'
+       echo $*
+}
+
 # specify_qemu_cpus qemu-cmd qemu-args #cpus
 #
 # Appends a string containing "-smp XXX" to qemu-args, unless the incoming
diff --git a/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh 
b/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh
index 3df1581e78ae..46f97d33e1ba 100755
--- a/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh
+++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh
@@ -188,6 +188,5 @@ then
 fi
 
 cp $builddir/console.log $resdir
-parse-rcutorture.sh $resdir/console.log $title >> $resdir/Warnings 2>&1
-parse-console.sh $resdir/console.log $title >> $resdir/Warnings 2>&1
-cat $resdir/Warnings
+parse-rcutorture.sh $resdir/console.log $title
+parse-console.sh $resdir/console.log $title
diff --git a/tools/testing/selftests/rcutorture/bin/parse-build.sh 
b/tools/testing/selftests/rcutorture/bin/parse-build.sh
index 2e0e9f7ebbb0..9da2c7ba3fce 100755
--- a/tools/testing/selftests/rcutorture/bin/parse-build.sh
+++ b/tools/testing/selftests/rcutorture/bin/parse-build.sh
@@ -30,18 +30,28 @@
 T=$1
 title=$2
 
+. functions.sh
+
 if grep -q CC < $T
 then
        :
 else
-       echo $title no build
+       print_bug $title no build
        exit 1
 fi
 
-if egrep -q "error:|rcu[^/]*\.c.*warning:|rcu.*\.h.*warning:" < $T
+if grep -q "error:" < $T
+then
+       print_bug $title build errors:
+       grep "error:" < $T
+       exit 2
+fi
+exit 0
+
+if egrep -q "rcu[^/]*\.c.*warning:|rcu.*\.h.*warning:" < $T
 then
-       echo $title build errors:
-       egrep "error:|rcu[^/]*\.c.*warning:|rcu.*\.h.*warning:" < $T
+       print_warning $title build errors:
+       egrep "rcu[^/]*\.c.*warning:|rcu.*\.h.*warning:" < $T
        exit 2
 fi
 exit 0
diff --git a/tools/testing/selftests/rcutorture/bin/parse-console.sh 
b/tools/testing/selftests/rcutorture/bin/parse-console.sh
index bc1496fa1263..8f4be78f06b6 100755
--- a/tools/testing/selftests/rcutorture/bin/parse-console.sh
+++ b/tools/testing/selftests/rcutorture/bin/parse-console.sh
@@ -31,9 +31,11 @@ trap 'rm -f $T' 0
 file="$1"
 title="$2"
 
+. functions.sh
+
 egrep 'Badness|WARNING:|Warn|BUG|===========|Call Trace:|Oops:' < $file | grep 
-v 'ODEBUG: ' | grep -v 'Warning: unable to open an initial console' > $T
 if test -s $T
 then
-       echo Assertion failure in $file $title
+       print_warning Assertion failure in $file $title
        cat $T
 fi
diff --git a/tools/testing/selftests/rcutorture/bin/parse-rcutorture.sh 
b/tools/testing/selftests/rcutorture/bin/parse-rcutorture.sh
index 37368a046a9f..ac2f75a83225 100755
--- a/tools/testing/selftests/rcutorture/bin/parse-rcutorture.sh
+++ b/tools/testing/selftests/rcutorture/bin/parse-rcutorture.sh
@@ -34,6 +34,8 @@ title="$2"
 
 trap 'rm -f $T.seq' 0
 
+. functions.sh
+
 # check for presence of rcutorture.txt file
 
 if test -f "$file" -a -r "$file"
@@ -49,7 +51,7 @@ fi
 if grep -q FAILURE $file || grep -q -e '-torture.*!!!' $file
 then
        nerrs=`grep --binary-files=text '!!!' $file | tail -1 | awk '{for 
(i=NF-8;i<=NF;i++) sum+=$i; } END {print sum}'`
-       echo $title FAILURE, $nerrs instances
+       print_bug $title FAILURE, $nerrs instances
        echo "   " $url
        exit
 fi
@@ -84,21 +86,21 @@ if grep -q SUCCESS $file
 then
        if test -s $T.seq
        then
-               echo WARNING $title `cat $T.seq`
+               print_warning $title $title `cat $T.seq`
                echo "   " $file
                exit 2
        fi
 else
        if grep -q RCU_HOTPLUG $file
        then
-               echo WARNING: HOTPLUG FAILURES $title `cat $T.seq`
+               print_warning HOTPLUG FAILURES $title `cat $T.seq`
                echo "   " $file
                exit 3
        fi
        echo $title no success message, `grep --binary-files=text 'ver:' $file 
| wc -l` successful RCU version messages
        if test -s $T.seq
        then
-               echo WARNING $title `cat $T.seq`
+               print_warning $title `cat $T.seq`
        fi
        exit 2
 fi
-- 
1.8.1.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to