]> diplodocus.org Git - nmh/blob - test/post/test-post-common.sh
Change API a bit.
[nmh] / test / post / test-post-common.sh
1 #!/bin/sh
2 #
3 # Common routines for the post tests
4 #
5
6 set -e
7
8 . "${MH_OBJ_DIR}/test/common.sh"
9
10 setup_test
11
12 localport=65412
13 testname="${MH_TEST_DIR}/$$"
14
15 #
16 # Set this for the EHLO command
17 #
18
19 echo "clientname: nosuchhost.example.com" >> ${MHMTSCONF}
20
21 #
22 # One "post" test run. Ok, yeah, we're using "send", but that's just
23 # because it's easier.
24 # $1: output filename for fakesmtp, i.e., the sent message
25 # $2: expected output
26 # $3: optional switches for send
27
28 test_post ()
29 { "${MH_OBJ_DIR}/test/fakesmtp" "$1" $localport &
30 pid="$!"
31
32 # The server doesn't always come up fast enough, so sleep and
33 # retry a few times if it fails...
34 status=1
35 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
36 if send -draft -server 127.0.0.1 -port $localport $3
37 then
38 status=0
39 break
40 fi
41 sleep 2
42 done
43 if [ $status -ne 0 ]; then
44 printf '%s: send failed, was fakesmtp given enough time to start?\n' \
45 "$0" >&2
46 exit 1
47 fi
48
49 wait ${pid}
50
51 #
52 # It's hard to calculate the exact Date: header post is going to
53 # use, so we'll just use sed to remove the actual date so we can easily
54 # compare it against our "correct" output.
55 #
56
57 sed -e 's/^Date:.*/Date:/' "$1" > "$1".nodate
58 rm -f "$1"
59
60 check "$1".nodate "$2"
61 }