On 01/14/2015 04:48 PM, Jim Meyering wrote:
On Wed, Jan 14, 2015 at 1:24 AM, Bernhard Voelker
<m...@bernhard-voelker.de> wrote:
On 01/14/2015 02:51 AM, Pádraig Brady wrote:
-compare /dev/null err && fail=1
+test -s err || fail=1

nice one!

Actually, I prefer the former.
When some program produces unexpected output, that use of
compare-vs-/dev/null will ensure that the surprising output is
printed in the test's output. If you use only the "test -s err",
you would have to instrument and rerun in order to see
the offending output.

oops, you're right.

There were a few others, too.
Fixed with the attached.

Have a nice day,
Berny
>From e84046dbe6dd26bfcea7edf6fb419bea274635ab Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <m...@bernhard-voelker.de>
Date: Wed, 14 Jan 2015 17:38:12 +0100
Subject: [PATCH] tests: use compare-vs-/dev/null instead of 'test -s'

When some program produces unexpected output, that use of
compare-vs-/dev/null will ensure that the surprising output is
printed in the test's output.  With "test -s err" only, one
would have to instrument and rerun in order to see the offending
output.

* cfg.mk (sc_prohibit_and_fail_1): Exempt 'compare' from this check.
* tests/dd/misc.sh: Change "tests -s ... || fail=1" to
"compare /dev/null ... && fail=1".
* tests/misc/nice.sh: Likewise.
* tests/rm/read-only.sh: Likewise.
* tests/tail-2/inotify-race.sh: Likewise.
* tests/touch/no-dereference.sh: Likewise.

Suggested by Jim Meyering in
http://lists.gnu.org/archive/html/coreutils/2015-01/msg00042.html
---
 cfg.mk                        | 2 +-
 tests/dd/misc.sh              | 2 +-
 tests/misc/nice.sh            | 2 +-
 tests/rm/read-only.sh         | 2 +-
 tests/tail-2/inotify-race.sh  | 2 +-
 tests/touch/no-dereference.sh | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/cfg.mk b/cfg.mk
index 70ca2e5..321e0e9 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -383,7 +383,7 @@ sc_prohibit_fail_0:
 # independently check its contents and thus detect any crash messages.
 sc_prohibit_and_fail_1:
 	@prohibit='&& fail=1'						\
-	exclude='(stat|kill|test |EGREP|grep|env|2> *[^/])'		\
+	exclude='(stat|kill|test |EGREP|grep|env|compare|2> *[^/])'	\
 	halt='&& fail=1 detected. Please use: returns_ 1 ... || fail=1'	\
 	in_vc_files='^tests/'						\
 	  $(_sc_search_regexp)
diff --git a/tests/dd/misc.sh b/tests/dd/misc.sh
index 2a536e8..bc5fb37 100755
--- a/tests/dd/misc.sh
+++ b/tests/dd/misc.sh
@@ -40,7 +40,7 @@ dd status=noxfer status=none if=$tmp_in of=/dev/null 2> err || fail=1
 compare /dev/null err || fail=1
 # check later status=noxfer overrides earlier status=none
 dd status=none status=noxfer if=$tmp_in of=/dev/null 2> err || fail=1
-test -s err || fail=1
+compare /dev/null err && fail=1
 
 dd if=$tmp_in of=$tmp_out 2> /dev/null || fail=1
 compare $tmp_in $tmp_out || fail=1
diff --git a/tests/misc/nice.sh b/tests/misc/nice.sh
index 973bc5a..59316ec 100755
--- a/tests/misc/nice.sh
+++ b/tests/misc/nice.sh
@@ -73,7 +73,7 @@ done
 if test x$(nice -n -1 nice 2> /dev/null) = x0 ; then
   # unprivileged user - warn about failure to change
   nice -n -1 true 2> err || fail=1
-  test -s err || fail=1
+  compare /dev/null err && fail=1
   mv err exp || framework_failure_
   nice --1 true 2> err || fail=1
   compare exp err || fail=1
diff --git a/tests/rm/read-only.sh b/tests/rm/read-only.sh
index 4edc2fa..4375f1b 100755
--- a/tests/rm/read-only.sh
+++ b/tests/rm/read-only.sh
@@ -47,6 +47,6 @@ compare /dev/null out || fail=1
 # However, trying to remove an existing file must fail.
 rm -f mnt/f > out 2>&1 && fail=1
 # with a diagnostic.
-test -s out || fail=1
+compare /dev/null out && fail=1
 
 Exit $fail
diff --git a/tests/tail-2/inotify-race.sh b/tests/tail-2/inotify-race.sh
index 576a652..2b1655c 100755
--- a/tests/tail-2/inotify-race.sh
+++ b/tests/tail-2/inotify-race.sh
@@ -68,6 +68,6 @@ pid=$!
 
 tail --pid=$pid -f tail.out | (read; kill $pid)
 
-test -s tail.out || fail=1
+compare /dev/null tail.out && fail=1
 
 Exit $fail
diff --git a/tests/touch/no-dereference.sh b/tests/touch/no-dereference.sh
index 776c255..fc0c723 100755
--- a/tests/touch/no-dereference.sh
+++ b/tests/touch/no-dereference.sh
@@ -27,7 +27,7 @@ ln -s file link || framework_failure_
 # These first tests should work on every platform.
 # -h does not create files, but it warns.  Use -c to silence warning.
 returns_ 1 touch -h no-file 2> err || fail=1
-test -s err || fail=1
+compare /dev/null err && fail=1
 touch -h -c no-file 2> err || fail=1
 compare /dev/null err || fail=1
 
-- 
2.1.2

Reply via email to