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 expected=$MH_TEST_DIR/$$.expected
20 actual=$MH_TEST_DIR/$$.actual
21 localmbox=`$MH_LIB_DIR/ap -format "%(localmbox)" 0`
22 #### Use this script itself for the test file.
23 testfiledir="$srcdir/test/post"
24 testfile=`basename $0`
26 (cd "$MH_TEST_DIR" && mkdir -p tmp)
28 #### Copy fakesendmail and the testfile because we cd to the
29 #### test directory, because tar doesn't like absolute paths.
30 cp "$srcdir/test/fakesendmail" "$testfiledir/$testfile" "$MH_TEST_DIR"
32 #### Use sendmail/pipe below to override default mts.
33 mts_fakesendmail="$MHMTSCONF-fakesendmail"
34 sed -e 's/^mts:.*/mts: sendmail\/pipe/' "$MHMTSCONF" > "$mts_fakesendmail"
35 printf 'sendmail: %s/fakesendmail\n' "$MH_TEST_DIR" >>"$mts_fakesendmail"
36 MHMTSCONF="$mts_fakesendmail"
38 # $1: uncompress command
40 # new: -to recipient -subject subject
41 # old: recipient subject
42 # remaining arguments: sendfiles switches
45 uncompress="$1"; shift
48 if [ "$argstyle" = 'new' ]; then
50 sendfiles "$@" -to recipient@example.com -subject "sendfiles test" \
51 "$testfile" >/dev/null 2>&1)
52 elif [ "$argstyle" = 'old' ]; then
54 sendfiles "$@" recipient@example.com "sendfiles test" \
55 "$testfile" >/dev/null 2>&1)
58 # fakesendmail drops the message and any cc's into this mbox.
59 mbox="$MH_TEST_DIR"/Mail/fakesendmail.mbox
60 inc -silent -file "$mbox"
61 rm -f "$mbox" "$mbox.map"
63 mhlist -verbose last | sed -e 's/ *$//' >"$actual"
64 (cd $MH_TEST_DIR/tmp &&
65 contents=`mhstore -noauto last 2>&1 | \
66 sed -e 's/storing message.*as file //'` &&
67 $uncompress "$contents" | tar xpf - && rm -f "$contents")
70 check "$testfiledir/$testfile" "$MH_TEST_DIR/tmp/$testfile" \
73 [ -f "$expected" ] && check "$expected" "$actual" || rm -f "$actual"
78 cat >"$expected" <<EOF
79 Usage: sendfiles [switches] -to recipient -subject subject file1 [file2 ...]
81 sendfiles [switches] recipient subject file1 [file2 ...]
83 -compress [bzip2 | compress | gzip | lzma | none]
85 -[delay] <delay> (expressed in seconds)
88 Can use PERSON environment variable instead of -from switch.
91 sendfiles -help >"$actual" 2>&1
92 check "$expected" "$actual"
95 case `sendfiles -v` in
97 * ) printf '%s: sendfiles -v generated unexpected output\n' "$0" >&2
98 failed=`expr ${failed:-0} + 1`;;
101 # check unknown switch
102 run_test 'sendfiles -nonexistent' "Usage: sendfiles [switches] -to recipient \
103 -subject subject file1 [file2 ...]
105 sendfiles [switches] recipient subject file1 [file2 ...]
107 -compress [bzip2 | compress | gzip | lzma | none]
109 -[delay] <delay> (expressed in seconds)
112 Can use PERSON environment variable instead of -from switch."
114 # check unknown compression method
115 run_test 'sendfiles -compress unknown to subject file' \
116 'sendfiles: unknown compression method "unknown"'"
117 Usage: sendfiles [switches] -to recipient \
118 -subject subject file1 [file2 ...]
120 sendfiles [switches] recipient subject file1 [file2 ...]
122 -compress [bzip2 | compress | gzip | lzma | none]
124 -[delay] <delay> (expressed in seconds)
127 Can use PERSON environment variable instead of -from switch."
129 # Check basic operation, using specified compression method.
130 # Don't check the mhlist output, by not creating an $expected file,
131 # because it will vary with compression method and compressed file
133 [ "`findprog bzip2`" ] && test_sendfiles 'bzip2 -cd' new -compress bzip2
134 [ "`findprog compress`" ] && test_sendfiles 'uncompress -c' new \
136 [ "`findprog gzip`" ] && test_sendfiles 'gzip -cd' new -compress gzip
137 [ "`findprog gzip`" ] && test_sendfiles 'gzip -cd' new -gzip
138 [ "`findprog lzma`" ] && test_sendfiles 'lzma -cd' new -compress lzma
140 # check with no compression
141 cat >"$expected" <<EOF
142 msg part type/subtype size description
143 11 application/octet-stream 10K
145 (extract with cat | tar xvpf -)
148 test_sendfiles cat new -compress none
150 # check with no compression, -none
151 cat >"$expected" <<EOF
152 msg part type/subtype size description
153 11 application/octet-stream 10K
155 (extract with cat | tar xvpf -)
158 test_sendfiles cat new -none
160 # check old argument style (without -to and -subject)
161 cat >"$expected" <<EOF
162 msg part type/subtype size description
163 11 application/octet-stream 10K
165 (extract with cat | tar xvpf -)
168 test_sendfiles cat old -compress none
171 cat >"$expected" <<EOF
172 msg part type/subtype size description
173 11 application/octet-stream 10K
175 (extract with cat | tar xvpf -)
178 test_sendfiles cat new -compress none -from 'Sender <sender@example.com>'
180 # check PERSON environment variable
181 cat >"$expected" <<EOF
182 msg part type/subtype size description
183 11 application/octet-stream 10K
185 (extract with cat | tar xvpf -)
188 PERSON='Sender <sender@example.com>' test_sendfiles cat new -compress none
190 # check -delay, though for a small file it doesn't do anything
191 cat >"$expected" <<EOF
192 msg part type/subtype size description
193 11 application/octet-stream 10K
195 (extract with cat | tar xvpf -)
198 test_sendfiles cat new -compress none -delay 5
200 # check old style -delay, though for a small file it doesn't do anything
201 cat >"$expected" <<EOF
202 msg part type/subtype size description
203 11 application/octet-stream 10K
205 (extract with cat | tar xvpf -)
208 test_sendfiles cat new -compress none -5
210 rm -fr "$MH_TEST_DIR/fakesendmail" "$MH_TEST_DIR/$testfile" "$MH_TEST_DIR/tmp"