]>
diplodocus.org Git - nmh/blob - test/slocal/test-slocal
2 ######################################################
6 ######################################################
10 if test -z "$MH_OBJ_DIR"; then
11 srcdir
=`dirname $0`/..
/..
12 MH_OBJ_DIR
=`cd $srcdir && pwd`; export MH_OBJ_DIR
15 .
"$MH_OBJ_DIR/test/common.sh"
19 # Use proper program, maybe not the first one on PATH.
20 slocal
="$MH_LIB_DIR"/slocal
22 expected
="$MH_TEST_DIR"/$$.expected
23 actual
="$MH_TEST_DIR"/$$.actual
24 actual2
="$MH_TEST_DIR"/$$.actual2
25 md
="$MH_TEST_DIR"/Mail
/maildelivery
28 cat >"$expected" <<EOF
29 Usage: slocal [switches]
45 $slocal -help >"$actual" 2>&1
46 check
"$expected" "$actual"
49 case `$slocal -vers` in
51 * ) printf '%s: slocal -vers generated unexpected output\n' "$0" >&2
52 failed
=`expr ${failed:-0} + 1`;;
55 # check unknown switch
56 run_test
"$slocal -nonexistent" 'slocal: -nonexistent unknown'
58 # check non-switch argument
59 run_test
"$slocal nonexistent" 'slocal: only switch arguments are supported'
61 # check basic operation
62 # Can't use rcvstore because slocal wipes out the environment.
63 # So, it would put the message in the user's inbox, not the
64 # test inbox. slocal also freopens stdout and stderr to
65 # /dev/null, so we can't view them to verify simulated delivery.
67 * 1 qpipe A "tee $actual"
70 $slocal -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/1
71 check
"$MH_TEST_DIR/Mail/inbox/1" "$actual" 'keep first'
74 $slocal -debug -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/1 >"$actual2" 2>&1
75 run_test
"grep ^retrieving $actual2" 'retrieving message from stdin'
78 $slocal -verbose -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/1 >"$actual2" 2>&1
79 run_test
"grep ^delivering $actual2" 'delivering to pipe "tee", success.'
82 $slocal -verbose -noverbose -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/1 \
84 run_test
"grep ^delivering $actual2" ''
89 From test2@example.com qpipe A "tee $actual"
92 $slocal -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/2
93 check
"$MH_TEST_DIR/Mail/inbox/2" "$actual" 'keep first'
97 From test3@example.com qpipe R "tee $actual"
98 From test3@example.com qpipe ? "tee $actual2"
101 $slocal -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/3
102 check
"$MH_TEST_DIR/Mail/inbox/3" "$actual" 'keep first'
103 check
"$MH_TEST_DIR/Mail/inbox/3" "$actual2" 'keep first'
107 From test4@example.com qpipe R "tee $actual"
108 From test4@example.com qpipe N "tee $actual2"
111 $slocal -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/4
112 check
"$MH_TEST_DIR/Mail/inbox/4" "$actual" 'keep first'
113 check
"$MH_TEST_DIR/Mail/inbox/4" "$actual2" 'keep first'
117 From test5@example.com qpipe R "tee $actual"
118 default 1 qpipe A "tee $actual2"
121 $slocal -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/5
122 check
"$MH_TEST_DIR/Mail/inbox/5" "$actual" 'keep first'
123 check
"$MH_TEST_DIR/Mail/inbox/5" "$actual2" 'keep first'
125 # Use current login for address, user, etc., because it must be an
126 # existing user on the host.
127 me
=`"$MH_LIB_DIR"/ap -format '%(me)' 0`
131 addr "$me" qpipe A "tee $actual"
134 $slocal -addr "$me" -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/6
135 check
"$MH_TEST_DIR/Mail/inbox/6" "$actual" 'keep first'
139 * 1 qpipe A "\$(info) $actual"
142 $slocal -info tee -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/7
143 check
"$MH_TEST_DIR/Mail/inbox/7" "$actual" 'keep first'
145 # check -sender, which is compared with "source"
147 source "$me" qpipe A "tee $actual"
150 $slocal -sender "$me" -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/8
151 check
"$MH_TEST_DIR/Mail/inbox/8" "$actual" 'keep first'
155 * 1 qpipe A "tee $actual"
158 $slocal -user "$me" -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/9
159 check
"$MH_TEST_DIR/Mail/inbox/9" "$actual" 'keep first'
165 $slocal -mailbox "$actual" -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/10
166 inc
-file "$actual" -silent -truncate
168 check
"$MH_TEST_DIR/Mail/inbox/10" "$MH_TEST_DIR/Mail/inbox/11" 'keep first'
171 $slocal -mailbox "$actual" -maildelivery $md -file "$MH_TEST_DIR"/Mail
/inbox
/1
172 inc
-file "$actual" -silent -truncate
174 check
"$MH_TEST_DIR/Mail/inbox/1" "$MH_TEST_DIR/Mail/inbox/11" 'keep first'
178 * 1 qpipe A "tee $actual"
181 $slocal -suppressdup -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/2
182 check
"$MH_TEST_DIR/Mail/inbox/2" "$actual" 'keep first'
184 $slocal -suppressdup -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/2
185 if [ -f "$actual" ]; then
186 echo $0: check
-suppressdup failed
187 failed
=`expr ${failed:-0} + 1`
190 # check -nosuppressdup
191 $slocal -suppress -nosuppressdup -maildelivery $md <"$MH_TEST_DIR"/Mail
/inbox
/2
192 check
"$MH_TEST_DIR/Mail/inbox/2" "$actual" 'keep first'