]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
tests: consolidate tests for true and false
authorPádraig Brady <P@draigBrady.com>
Tue, 3 Jun 2014 09:50:09 +0000 (10:50 +0100)
committerPádraig Brady <P@draigBrady.com>
Tue, 3 Jun 2014 17:39:57 +0000 (18:39 +0100)
* src/true.c (main): Add a comment about the possibility
of true returning EXIT_FAILURE due to write failure.
* tests/misc/false-status.sh: Fix so we're testing
the tool and not the shell builtin.  Add a case for true(1).
* tests/misc/help-version.sh: Skip /dev/full test
for true as well as false since the exit status is tested separately.
Also remove the iterations for different LC_MESSAGES, as this was only
applied for false(1).  Translations are not honored in the test dir
and so would need separate handling in any case.

src/true.c
tests/misc/false-status.sh
tests/misc/help-version.sh

index 219f98c86773a12126e5e1a883f72c4453958474..8a1c4f9202fc02211f3bfb69149eb2c43d7d454b 100644 (file)
@@ -64,6 +64,8 @@ main (int argc, char **argv)
       bindtextdomain (PACKAGE, LOCALEDIR);
       textdomain (PACKAGE);
 
+      /* Note true(1) will return EXIT_FAILURE in the
+         edge case where writes fail with GNU specific options.  */
       atexit (close_stdout);
 
       if (STREQ (argv[1], "--help"))
index b9430404ba84e4a3420c6af303ccf0286caae22d..77bea45103a63db1104dda78a6fbd98ad01cd7f4 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/sh
 # ensure that false exits nonzero even with --help or --version
+# and ensure that true exits nonzero when it can't write --help or --version
 
 # Copyright (C) 2003-2014 Free Software Foundation, Inc.
 
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 . "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
-print_ver_ false
+print_ver_ false true
 
-false --version > /dev/null && fail=1
-false --help > /dev/null && fail=1
+env false --version > /dev/null && fail=1
+env false --help > /dev/null && fail=1
+
+if test -w /dev/full && test -c /dev/full; then
+  env true --version > /dev/full && fail=1
+  env true --help > /dev/full && fail=1
+fi
 
 Exit $fail
index 4bc02d85dd48595855cdccaa8ebbda266e14bc51..b4939f7afae80c8d4c4edda9eabec9f8311de4d6 100755 (executable)
@@ -70,43 +70,38 @@ done
 test "x$v" = "x$VERSION" \
   || fail_ "--version-\$VERSION mismatch"
 
-for lang in C fr da; do
-  for i in $built_programs; do
-
-    # Skip 'test'; it doesn't accept --help or --version.
-    test $i = test && continue;
-
-    # false fails even when invoked with --help or --version.
-    if test $i = false; then
-      env LC_MESSAGES=$lang $i --help >/dev/null && fail=1
-      env LC_MESSAGES=$lang $i --version >/dev/null && fail=1
-      continue
-    fi
+for i in $built_programs; do
 
-    # The just-built install executable is always named 'ginstall'.
-    test $i = install && i=ginstall
-
-    # Make sure they exit successfully, under normal conditions.
-    env $i --help    >/dev/null || fail=1
-    env $i --version >/dev/null || fail=1
-
-    # Make sure they fail upon 'disk full' error.
-    if test -w /dev/full && test -c /dev/full; then
-      env $i --help    >/dev/full 2>/dev/null && fail=1
-      env $i --version >/dev/full 2>/dev/null && fail=1
-      status=$?
-      test $i = [ && prog=lbracket || prog=$(echo $i|sed "s/$EXEEXT$//")
-      eval "expected=\$expected_failure_status_$prog"
-      test x$expected = x && expected=1
-      if test $status = $expected; then
-        : # ok
-      else
-        fail=1
-        echo "*** $i: bad exit status '$status' (expected $expected)," 1>&2
-        echo "  with --help or --version output redirected to /dev/full" 1>&2
-      fi
+  # Skip 'test'; it doesn't accept --help or --version.
+  test $i = test && continue
+
+  # false fails even when invoked with --help or --version.
+  # true and false are tested with these options separately.
+  test $i = false || test $i = true && continue
+
+  # The just-built install executable is always named 'ginstall'.
+  test $i = install && i=ginstall
+
+  # Make sure they exit successfully, under normal conditions.
+  env $i --help    >/dev/null || fail=1
+  env $i --version >/dev/null || fail=1
+
+  # Make sure they fail upon 'disk full' error.
+  if test -w /dev/full && test -c /dev/full; then
+    env $i --help    >/dev/full 2>/dev/null && fail=1
+    env $i --version >/dev/full 2>/dev/null && fail=1
+    status=$?
+    test $i = [ && prog=lbracket || prog=$(echo $i|sed "s/$EXEEXT$//")
+    eval "expected=\$expected_failure_status_$prog"
+    test x$expected = x && expected=1
+    if test $status = $expected; then
+      : # ok
+    else
+      fail=1
+      echo "*** $i: bad exit status '$status' (expected $expected)," 1>&2
+      echo "  with --help or --version output redirected to /dev/full" 1>&2
     fi
-  done
+  fi
 done
 
 bigZ_in=bigZ-in.Z