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
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
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
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