]> diplodocus.org Git - nmh/blob - test/ali/test-ali
annosbr.c: free(3) takes void pointer; don't cast non-const pointer.
[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 -
23 check_exit '-eq 1' ali -noalias -alias
24 check_exit '-eq 1' ali -user
25 check_exit '-eq 1' ali -user ''
26 check_exit '-eq 1' ali -user 'foo bar'
27 check_exit '-eq 0' ali -user foo,bar
28
29 expected=$MH_TEST_DIR/$$.expected
30 expected_err=$MH_TEST_DIR/$$.expected_err
31 actual=$MH_TEST_DIR/$$.actual
32 actual_err=$MH_TEST_DIR/$$.actual_err
33
34
35 # check -help
36 cat >$expected <<EOF
37 Usage: ali [switches] aliases ...
38 switches are:
39 -alias aliasfile
40 -noalias
41 -[no]list
42 -[no]user
43 -version
44 -help
45 EOF
46
47 #### Skip nmh intro text.
48 ali -help | sed '/^$/,$d' >"$actual" 2>&1
49 check "$expected" "$actual"
50
51 # check -version
52 case `ali -v` in
53 ali\ --*) ;;
54 * ) echo "$0: ali -v generated unexpected output" 1>&2
55 failed=`expr ${failed:-0} + 1`;;
56 esac
57
58 # check unknown option
59 run_test 'ali -nonexistent' 'ali: -nonexistent unknown'
60
61 # check with no arguments and no AliasFile profile component
62 run_test 'ali' ''
63
64 # check with nonexistent alias file
65 run_test 'ali -alias nonexistent' \
66 "ali: aliasing error in nonexistent - unable to read 'nonexistent'"
67
68 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
69 me: me@example.com
70 rush: geddy, alex, neil
71 geddy: geddy@example.com
72 alex: alex@example.com
73 neil: neil@example.com
74 EOF
75
76 # check -alias
77 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases" \
78 'me: me@example.com
79 rush: geddy@example.com, alex@example.com, neil@example.com
80 geddy: geddy@example.com
81 alex: alex@example.com
82 neil: neil@example.com'
83
84 # check for a specific alias
85 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
86 'geddy@example.com, alex@example.com, neil@example.com'
87
88 # check for a specific alias that doesn't exist
89 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases nonexistent" \
90 'nonexistent'
91
92 # check -list
93 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list" \
94 'me: me@example.com
95 rush: geddy@example.com
96 alex@example.com
97 neil@example.com
98 geddy: geddy@example.com
99 alex: alex@example.com
100 neil: neil@example.com'
101
102 # check -nolist, which is the default
103 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -list -nolist" \
104 'me: me@example.com
105 rush: geddy@example.com, alex@example.com, neil@example.com
106 geddy: geddy@example.com
107 alex: alex@example.com
108 neil: neil@example.com'
109
110 # check -user
111 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases -user geddy@example.com" \
112 'rush, geddy'
113
114 # check -nouser
115 run_test \
116 "ali -alias ${MH_TEST_DIR}/Mail/aliases -user -nouser geddy@example.com" \
117 'geddy@example.com'
118
119 # check expansion of first address of blind list [Bug #15604]
120 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
121 rush: Rush: geddy, alex, neil
122 geddy: geddy@example.com
123 alex: alex@example.com
124 neil: neil@example.com
125 EOF
126
127 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
128 'Rush: geddy@example.com, alex@example.com, neil@example.com'
129
130 # check that aliases followed by ; are not expanded [Bug #15604]
131 cat >"${MH_TEST_DIR}/Mail/aliases" <<EOF
132 rush: Rush: geddy, alex, neil;
133 geddy: geddy@example.com
134 alex: alex@example.com
135 neil: neil@example.com
136 EOF
137
138 run_test "ali -alias ${MH_TEST_DIR}/Mail/aliases rush" \
139 'Rush: geddy@example.com, alex@example.com, neil;'
140
141
142 exit $failed