]> diplodocus.org Git - nmh/blob - test/ali/test-ali
mh-mkstemp.man: Detail exit status as 255 rather than -1.
[nmh] / test / ali / test-ali
1 #!/bin/sh
2 ######################################################
3 #
4 # Test ali
5 #
6 ######################################################
7
8 # Not tested:
9 # -normalize, -nonormalize
10
11 set -e
12
13 if test -z "${MH_OBJ_DIR}"; then
14 srcdir=`dirname $0`/../..
15 MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR
16 fi
17
18 . "$MH_OBJ_DIR/test/common.sh"
19
20 setup_test
21
22 check_exit '-eq 1' ali - # gcov
23
24 expected=$MH_TEST_DIR/$$.expected
25 expected_err=$MH_TEST_DIR/$$.expected_err
26 actual=$MH_TEST_DIR/$$.actual
27 actual_err=$MH_TEST_DIR/$$.actual_err
28
29
30 # check -help
31 cat >$expected <<EOF
32 Usage: ali [switches] aliases ...
33 switches are:
34 -alias aliasfile
35 -noalias
36 -[no]list
37 -[no]user
38 -version
39 -help
40 EOF
41
42 #### Skip nmh intro text.
43 ali -help | sed '/^$/,$d' >"$actual" 2>&1
44 check "$expected" "$actual"
45
46 # check -version
47 case `ali -v` in
48 ali\ --*) ;;
49 * ) echo "$0: ali -v generated unexpected output" 1>&2
50 failed=`expr ${failed:-0} + 1`;;
51 esac
52
53 # check unknown option
54 run_test 'ali -nonexistent' 'ali: -nonexistent unknown'
55
56 # check with no arguments and no AliasFile profile component
57 run_test 'ali' ''
58
59 # check with nonexistent alias file
60 run_test 'ali -alias nonexistent' \
61 "ali: aliasing error in nonexistent - unable to read 'nonexistent'"
62
63 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
64 me: me@example.com
65 rush: geddy, alex, neil
66 geddy: geddy@example.com
67 alex: alex@example.com
68 neil: neil@example.com
69 EOF
70
71 # check -alias
72 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases" \
73 'me: me@example.com
74 rush: geddy@example.com, alex@example.com, neil@example.com
75 geddy: geddy@example.com
76 alex: alex@example.com
77 neil: neil@example.com'
78
79 # check for a specific alias
80 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
81 'geddy@example.com, alex@example.com, neil@example.com'
82
83 # check for a specific alias that doesn't exist
84 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases nonexistent" \
85 'nonexistent'
86
87 # check -list
88 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list" \
89 'me: me@example.com
90 rush: geddy@example.com
91 alex@example.com
92 neil@example.com
93 geddy: geddy@example.com
94 alex: alex@example.com
95 neil: neil@example.com'
96
97 # check -nolist, which is the default
98 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list -nolist" \
99 'me: me@example.com
100 rush: geddy@example.com, alex@example.com, neil@example.com
101 geddy: geddy@example.com
102 alex: alex@example.com
103 neil: neil@example.com'
104
105 # check -user
106 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -user geddy@example.com" \
107 'rush, geddy'
108
109 # check -nouser
110 run_test \
111 "ali -alias ${MH_TEST_DIR}/Mail/aliases -user -nouser geddy@example.com" \
112 'geddy@example.com'
113
114 # check expansion of first address of blind list [Bug #15604]
115 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
116 rush: Rush: geddy, alex, neil
117 geddy: geddy@example.com
118 alex: alex@example.com
119 neil: neil@example.com
120 EOF
121
122 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
123 'Rush: geddy@example.com, alex@example.com, neil@example.com'
124
125 # check that aliases followed by ; are not expanded [Bug #15604]
126 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
127 rush: Rush: geddy, alex, neil;
128 geddy: geddy@example.com
129 alex: alex@example.com
130 neil: neil@example.com
131 EOF
132
133 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
134 'Rush: geddy@example.com, alex@example.com, neil;'
135
136
137 exit $failed