linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: mingo@kernel.org, laijs@cn.fujitsu.com, dipankar@in.ibm.com,
	akpm@linux-foundation.org, mathieu.desnoyers@efficios.com,
	josh@joshtriplett.org, niv@us.ibm.com, tglx@linutronix.de,
	peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com,
	edumazet@google.com, darren@dvhart.com, fweisbec@gmail.com,
	sbw@mit.edu, "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Greg KH <gregkh@linuxfoundation.org>
Subject: [PATCH tip/core/rcu 27/28] rcutorture: Flag errors and warnings with color coding
Date: Fri, 15 Nov 2013 16:35:40 -0800	[thread overview]
Message-ID: <1384562141-32446-27-git-send-email-paulmck@linux.vnet.ibm.com> (raw)
In-Reply-To: <1384562141-32446-1-git-send-email-paulmck@linux.vnet.ibm.com>

From: "Paul E. McKenney" <paulmck@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 <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    | 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


  parent reply	other threads:[~2013-11-16  0:39 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-16  0:35 [PATCH tip/core/rcu 0/28] RCU torture scripting for 3.14 Paul E. McKenney
2013-11-16  0:35 ` [PATCH tip/core/rcu 01/28] rcutorture: Add KVM-based test framework Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 02/28] rcutorture: Add datestamp argument to kvm.sh Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 03/28] rcutorture: Add kernel-version argument Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 04/28] rcutorture: Add per-version default Kconfig fragments and module parameters Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 05/28] rcutorture: Add per-Kconfig fragment boot parameters Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 06/28] rcutorture: Add v3.12 version, which adds sysidle testing Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 07/28] rcutorture: Add SRCU Kconfig-fragment files Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 08/28] rcutorture: Refactor TREE_RCU test cases Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 09/28] rcutorture: Refactor TINY_RCU " Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 10/28] rcutorture: Make test output less chatty Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 11/28] rcutorture: Eliminate duplicate .config-check code Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 12/28] rcutorture: Abstract qemu-flavor identification Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 13/28] rcutorture: Remove decorative qemu argument Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 14/28] rcutorture: Eliminate --rcu-kvm argument Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 15/28] rcutorture: Refactor to enable non-x86 architectures Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 16/28] rcutorture: Allow Kconfig-related boot parameters to override Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 17/28] rcutorture: Eliminate configdir argument from kvm-recheck.sh script Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 18/28] rcutorture: Add --buildonly dry-run capability Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 19/28] rcutorture: Add --bootargs argument to specify additional boot arguments Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 20/28] rcutorture: Add --qemu-args argument to kvm.sh Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 21/28] rcutorture: Add --no-initrd " Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 22/28] rcutorture: Add --kmake-arg " Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 23/28] rcutorture: Add tracing-enabled version of TREE08 Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 24/28] rcutorture: Update comment in kvm.sh listing typical RCU trace events Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 25/28] rcutorture: Test summary at end of run with less chattiness Paul E. McKenney
2013-11-16  0:35   ` [PATCH tip/core/rcu 26/28] rcutorture: Record results from repeated runs of the same test scenario Paul E. McKenney
2013-11-16  0:35   ` Paul E. McKenney [this message]
2013-11-16  0:35   ` [PATCH tip/core/rcu 28/28] rcutorture: Move checkarg to functions.sh Paul E. McKenney
2013-11-16  1:05   ` [PATCH tip/core/rcu 01/28] rcutorture: Add KVM-based test framework Greg KH
2013-11-16  1:21     ` Paul E. McKenney
2013-11-16  1:47       ` Steven Rostedt
2013-11-16  2:01         ` Greg KH
2013-11-16  3:56           ` Paul E. McKenney
2013-11-21  0:25         ` Josh Triplett

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1384562141-32446-27-git-send-email-paulmck@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=darren@dvhart.com \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=edumazet@google.com \
    --cc=fweisbec@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=josh@joshtriplett.org \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=niv@us.ibm.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=sbw@mit.edu \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).