Added -noall/-all switches to sortm(1).
[mmh] / test / pick / test-pick
index ba7c18b..9b737ce 100755 (executable)
@@ -87,6 +87,7 @@ NOT
 EOF
 check $expected $actual
 
+set +e
 
 # Produce 0 if no messages match and standard output is not a tty.
 # Note that there is an error message on stderr, but it's redirected
@@ -97,16 +98,12 @@ cat >$expected <<EOF
 EOF
 check $expected $actual
 
-
-set +e
-
-if test -w /dev/tty; then
+if test -w /dev/tty && printf '' >/dev/tty; then
   # Produce no standard output if no messages match and standard
-  # output is a tty.  To test that, move stderr to stdout and
-  # write the output directly to the tty.  If there is output,
-  # it probably won't be captured, but pretend that it would be.
-  output=`pick -subject message.3 -and -from Test4 >&2- >/dev/tty`
-  run_test "echo $output" ''
+  # output is a tty.  To test that even when run with stdout
+  # detached, write directly to /dev/tty.  Can't capture the
+  # output so hopefully the user will notice it.
+  pick -subject message.3 -and -from Test4 >/dev/tty 2>/dev/null
 else
   echo "$0: skip tty test because can't write to /dev/tty"
 fi
@@ -146,7 +143,9 @@ EOF
 check $expected $actual
 
 # Invert exit status so execution doesn't terminate due to -e.
-! pick -after '29 Sep 2008 00:00:00' >$actual 2>/dev/null
+set +e
+pick -after '29 Sep 2008 00:00:00' >$actual 2>/dev/null
+set -e
 cat >$expected <<EOF
 0
 EOF
@@ -166,16 +165,18 @@ cat >$expected <<EOF
 10
 EOF
 check $expected $actual
-# Invert exit status so execution doesn't terminate due to -e.
-! pick -before '28 Sep 2006 00:00:00' last:3 >$actual 2>/dev/null
+set +e
+pick -before '28 Sep 2006 00:00:00' last:3 >$actual 2>/dev/null
+set -e
 cat >$expected <<EOF
 0
 EOF
 check $expected $actual
 
 # Test -datefield.
-# Invert exit status so execution doesn't terminate due to -e.
-! pick -datefield date -after '29 Sep 2008 00:00:00' >$actual 2>/dev/null
+set +e
+pick -datefield date -after '29 Sep 2008 00:00:00' >$actual 2>/dev/null
+set -e
 cat >$expected <<EOF
 0
 EOF