]> diplodocus.org Git - nmh/blobdiff - test/pick/test-pick
Remove unused NCWD and NPWD #defines.
[nmh] / test / pick / test-pick
index 3fff777545e0a2d444c51c1a127ad2596614a9db..6ec67d922cfddcb0bdec3c9d2e9a709ea8aede8a 100755 (executable)
@@ -49,6 +49,12 @@ run_test 'pick -not -subject message.8 last:5' '7
 10
 11'
 
+# Test -reverse.
+run_test 'pick -reverse -not -subject message.8 last:5' '11
+10
+9
+7'
+
 # Test -lbrace, -rbrace.
 run_test 'pick -subject message.12 -and -subject message.3 -or -from Test4' '4'
 run_test 'pick -subject message.12 -and -lbrace -subject message.3 -rbrace' \
@@ -76,9 +82,9 @@ run_test 'pick -not -lbrace -subject NoMatch -and -subject message.3 -rbrace' \
 10
 11'
 
-# Test MHPDEBUG.
-MHPDEBUG=1 pick -not -lbrace -subject NoMatch -and -subject message.3 -rbrace \
- >/dev/null 2>"$actual"
+# Test -debug.
+run_prog pick -debug -not -lbrace -subject NoMatch -and -subject message.3 \
 -rbrace >/dev/null 2>"$actual"
 cat >"$expected" <<EOF
 NOT
 | AND
@@ -92,29 +98,24 @@ 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
 # to /dev/null here.
-echo `pick -subject message.3 -and -from Test4 >"$actual" 2>/dev/null` \
+echo \
+  `run_prog pick -subject message.3 -and -from Test4 >"$actual" 2>/dev/null` \
   >/dev/null
 cat >"$expected" <<EOF
 0
 EOF
 check "$expected" "$actual"
 
-if test -w /dev/tty 2>/dev/null; then
-  if printf '' >/dev/tty; then
-    # Produce no standard output if no messages match and standard
-    # 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
-else
-  echo "$0: skip tty test because can't write to /dev/tty"
+if test -t 1  &&  (printf '' >/dev/tty) 2>/dev/null; then
+  # Produce no standard output if no messages match and standard
+  # 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.
+  run_prog pick -subject message.3 -and -from Test4 >/dev/tty 2>/dev/null
 fi
 
 # Also, check that the exit status is 1.
-pick -subject message.3 -and -from Test4 >/dev/null 2>&1
+run_prog pick -subject message.3 -and -from Test4 >/dev/null 2>&1
 run_test "echo $?" '1'
 
 set -e
@@ -141,7 +142,7 @@ run_test 'pick -to some -nolist' '11 hits'
 run_test 'pick -to user@example.com -nolist' '11 hits'
 
 # Test -after.
-pick -after '28 Sep 2008 00:00:00' >"$actual" 2>&1
+run_prog pick -after '28 Sep 2008 00:00:00' >"$actual" 2>&1
 cat >"$expected" <<EOF
 11
 EOF
@@ -149,7 +150,7 @@ check "$expected" "$actual"
 
 # Invert exit status so execution doesn't terminate due to -e.
 set +e
-pick -after '29 Sep 2008 00:00:00' >"$actual" 2>/dev/null
+run_prog pick -after '29 Sep 2008 00:00:00' >"$actual" 2>/dev/null
 set -e
 cat >"$expected" <<EOF
 0
@@ -157,21 +158,21 @@ EOF
 check "$expected" "$actual"
 
 # Test -before.  While -after doesn't include the specified date, -before does.
-pick -before '29 Sep 2008 00:00:01' last:3 >"$actual" 2>&1
+run_prog pick -before '29 Sep 2008 00:00:01' last:3 >"$actual" 2>&1
 cat >"$expected" <<EOF
 9
 10
 11
 EOF
 check "$expected" "$actual"
-pick -before '28 Sep 2008 00:00:00:' last:3 >"$actual" 2>&1
+run_prog pick -before '28 Sep 2008 00:00:00:' last:3 >"$actual" 2>&1
 cat >"$expected" <<EOF
 9
 10
 EOF
 check "$expected" "$actual"
 set +e
-pick -before '28 Sep 2006 00:00:00' last:3 >"$actual" 2>/dev/null
+run_prog pick -before '28 Sep 2006 00:00:00' last:3 >"$actual" 2>/dev/null
 set -e
 cat >"$expected" <<EOF
 0
@@ -180,13 +181,15 @@ check "$expected" "$actual"
 
 # Test -datefield.
 set +e
-pick -datefield date -after '29 Sep 2008 00:00:00' >"$actual" 2>/dev/null
+run_prog pick -datefield date -after '29 Sep 2008 00:00:00' \
+  >"$actual" 2>/dev/null
 set -e
 cat >"$expected" <<EOF
 0
 EOF
 check "$expected" "$actual"
-pick -datefield delivery-date -after '29 Sep 2008 00:00:00' >"$actual" 2>&1
+run_prog pick -datefield delivery-date -after '29 Sep 2008 00:00:00' \
+  >"$actual" 2>&1
 cat >"$expected" <<EOF
 11
 EOF
@@ -245,7 +248,7 @@ EOF
 
 echo 12 >"$expected"
 
-pick -subject 'multi-line header field' 12 >"$actual" 2>&1
+run_prog pick -subject 'multi-line header field' 12 >"$actual" 2>&1
 check "$expected" "$actual"
 
 # Test MIME-encoded header.
@@ -263,7 +266,10 @@ EOF
 echo 13 >"$expected"
 
 set +e
-LC_CTYPE=en_US.UTF-8 pick -subject foobar 13 >"$actual" 2>&1
+
+require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8
+# Don't use run_prog here because it loses the environment setting.
+pick -subject foobar 13 >"$actual" 2>&1
 set -e
 check "$expected" "$actual"