]>
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 run_prog
$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 # If no mail spool, explicitly specify the mailbox.
62 if grep 'mmdfldir:.*/dev/null' ${MHMTSCONF}.old
>/dev
/null
; then
63 mbox
="-mailbox ${MH_TEST_DIR}/Mail/mbox"
68 #### Need to specify full path to tee on Cygwin.
69 [ -x /usr
/bin
/tee ] && tee=/usr
/bin
/tee || tee=tee
71 # check basic operation
72 # Can't use rcvstore because slocal wipes out the environment.
73 # So, it would put the message in the user's inbox, not the
74 # test inbox. slocal also freopens stdout and stderr to
75 # /dev/null, so we can't view them to verify simulated delivery.
77 * - qpipe A "$tee $actual"
81 run_prog
$slocal -maildelivery "$md" $mbox <"$MH_TEST_DIR"/Mail
/inbox
/1
82 check
"$MH_TEST_DIR/Mail/inbox/1" "$actual" 'keep first'
84 if [ ${failed:-0} -eq 1 ]; then
85 printf "\nRerunning failed basic slocal command with -verbose -debug to help
86 diagnose test failure . . .\n\n"
87 run_prog
$slocal -verbose -debug -maildelivery "$md" $mbox \
88 <"$MH_TEST_DIR"/Mail
/inbox
/1
93 run_prog
$slocal -debug -maildelivery "$md" $mbox <"$MH_TEST_DIR"/Mail
/inbox
/1 \
95 run_test
"grep ^retrieving $actual2" 'retrieving message from stdin'
98 run_prog
$slocal -verbose -maildelivery "$md" $mbox \
99 <"$MH_TEST_DIR"/Mail
/inbox
/1 >"$actual2" 2>&1
100 run_test
"grep ^delivering $actual2" "delivering to pipe \"$tee\", success."
103 run_prog
$slocal -verbose -noverbose -maildelivery "$md" $mbox \
104 <"$MH_TEST_DIR"/Mail
/inbox
/1 >"$actual2" 2>&1
105 run_test
"grep ^delivering $actual2" ''
108 # check match of From
110 From test2@example.com qpipe A "$tee $actual"
113 run_prog
$slocal -maildelivery "$md" $mbox <"$MH_TEST_DIR"/Mail
/inbox
/2
114 check
"$MH_TEST_DIR/Mail/inbox/2" "$actual" 'keep first'
118 From test3@example.com qpipe R "$tee $actual"
119 From test3@example.com qpipe ? "$tee $actual2"
122 run_prog
$slocal -maildelivery "$md" $mbox <"$MH_TEST_DIR"/Mail
/inbox
/3
123 check
"$MH_TEST_DIR/Mail/inbox/3" "$actual" 'keep first'
124 check
"$MH_TEST_DIR/Mail/inbox/3" "$actual2" 'keep first'
128 From test4@example.com qpipe R "$tee $actual"
129 From test4@example.com qpipe N "$tee $actual2"
132 run_prog
$slocal -maildelivery "$md" $mbox <"$MH_TEST_DIR"/Mail
/inbox
/4
133 check
"$MH_TEST_DIR/Mail/inbox/4" "$actual" 'keep first'
134 check
"$MH_TEST_DIR/Mail/inbox/4" "$actual2" 'keep first'
138 From test5@example.com qpipe R "$tee $actual"
139 default 1 qpipe A "$tee $actual2"
142 run_prog
$slocal -maildelivery "$md" $mbox <"$MH_TEST_DIR"/Mail
/inbox
/5
143 check
"$MH_TEST_DIR/Mail/inbox/5" "$actual" 'keep first'
144 check
"$MH_TEST_DIR/Mail/inbox/5" "$actual2" 'keep first'
146 # Use current login for address, user, etc., because it must be an
147 # existing user on the host.
148 me
=`"$MH_LIB_DIR"/ap -format '%(me)' 0`
152 addr "$me" qpipe A "$tee $actual"
155 run_prog
$slocal -addr "$me" -maildelivery "$md" $mbox \
156 <"$MH_TEST_DIR"/Mail
/inbox
/6
157 check
"$MH_TEST_DIR/Mail/inbox/6" "$actual" 'keep first'
161 * - qpipe A "\$(info) $actual"
164 run_prog
$slocal -info $tee -maildelivery "$md" $mbox \
165 <"$MH_TEST_DIR"/Mail
/inbox
/7
166 check
"$MH_TEST_DIR/Mail/inbox/7" "$actual" 'keep first'
168 # check -sender, which is compared with "source"
170 source "$me" qpipe A "$tee $actual"
173 run_prog
$slocal -sender "$me" -maildelivery "$md" $mbox \
174 <"$MH_TEST_DIR"/Mail
/inbox
/8
175 check
"$MH_TEST_DIR/Mail/inbox/8" "$actual" 'keep first'
179 * - qpipe A "$tee $actual"
182 run_prog
$slocal -user "$me" -maildelivery "$md" $mbox \
183 <"$MH_TEST_DIR"/Mail
/inbox
/9
184 check
"$MH_TEST_DIR/Mail/inbox/9" "$actual" 'keep first'
190 run_prog
$slocal -mailbox "$actual" -maildelivery "$md" \
191 <"$MH_TEST_DIR"/Mail
/inbox
/10
192 inc
-file "$actual" -silent -truncate
194 check
"$MH_TEST_DIR/Mail/inbox/10" "$MH_TEST_DIR/Mail/inbox/11" 'keep first'
197 run_prog
$slocal -mailbox "$actual" -maildelivery "$md" \
198 -file "$MH_TEST_DIR"/Mail
/inbox
/1
199 inc
-file "$actual" -silent -truncate
201 check
"$MH_TEST_DIR/Mail/inbox/1" "$MH_TEST_DIR/Mail/inbox/11" 'keep first'
205 * - qpipe A "$tee $actual"
208 run_prog
$slocal -suppressdup -maildelivery "$md" $mbox \
209 <"$MH_TEST_DIR"/Mail
/inbox
/2
210 check
"$MH_TEST_DIR/Mail/inbox/2" "$actual" 'keep first'
212 run_prog
$slocal -suppressdup -maildelivery "$md" $mbox \
213 <"$MH_TEST_DIR"/Mail
/inbox
/2
214 if [ -f "$actual" ]; then
215 echo $0: check
-suppressdup failed
216 failed
=`expr ${failed:-0} + 1`
219 # check -nosuppressdup
220 run_prog
$slocal -suppress -nosuppressdup -maildelivery "$md" $mbox \
221 <"$MH_TEST_DIR"/Mail
/inbox
/2
222 check
"$MH_TEST_DIR/Mail/inbox/2" "$actual" 'keep first'