rcutorture: Flag errors and warnings with color coding
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 28 Oct 2013 13:34:22 +0000 (06:34 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 3 Dec 2013 18:11:18 +0000 (10:11 -0800)
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 <mingo@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
tools/testing/selftests/rcutorture/bin/functions.sh
tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh
tools/testing/selftests/rcutorture/bin/parse-build.sh
tools/testing/selftests/rcutorture/bin/parse-console.sh
tools/testing/selftests/rcutorture/bin/parse-rcutorture.sh

index d0d19eb..963b6f0 100644 (file)
@@ -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
index 3df1581..46f97d3 100755 (executable)
@@ -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
index 2e0e9f7..9da2c7b 100755 (executable)
 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
index bc1496f..8f4be78 100755 (executable)
@@ -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
index 37368a0..ac2f75a 100755 (executable)
@@ -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