Copied atexit() code from fakesmtp.c to fakepop.c so that its
[mmh] / test / burst / test-burst
1 #!/bin/sh
2 #
3 # Tests to see if bursting messages works correctly.
4 #
5
6 if test -z "${MH_OBJ_DIR}"; then
7     srcdir=`dirname "$0"`/../..
8     MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
9 fi
10
11 . "${MH_OBJ_DIR}/test/common.sh"
12
13 setup_test
14
15 #
16 # Create a test message that we can burst
17 #
18
19 cat > "${MH_TEST_DIR}/Mail/inbox/11" <<EOF
20 From: Test Burst Message <burst1@example.com>
21 To: Test Recipient <recipient@example.com>
22 Date: Friday, 29 Sep 2006 00:00:00
23 Subject: Test digest
24
25 ------- Message one
26
27 From: Mister Burster <burst2@example.com>
28 To: Nobody 1 <nobody1@example.com>
29 Date: Thursday, 28 Sep 2006 00:01:00
30 Subject: Message one
31
32 This is message one
33
34 ------- Message two
35
36 From: Mister Burster <burst3@example.com>
37 To: Nobody 2 <nobody2@example.com>
38 Date: Thursday, 28 Sep 2006 00:02:00
39 Subject: Message two
40
41 This is message two
42 For real.
43
44 -------
45
46 End of all messages
47 EOF
48
49 burst 11 || exit
50
51 run_test 'scan -width 80 11-last' \
52 "  11  09/29 Test Burst Messag  Test digest<<------- Message one From: Mister Bu
53   12+ 09/28 Mister Burster     Message one<<This is message one >>
54   13  09/28 Mister Burster     Message two<<This is message two For real. >>"
55
56 #
57 # Create another test message that stresses the boundary checker a bit
58 #
59
60 cat > "${MH_TEST_DIR}/Mail/inbox/14" <<EOF
61 From: Test Burst Message <burst1@example.com>
62 To: Test Recipient <recipient@example.com>
63 Date: Friday, 29 Sep 2006 00:00:00
64 Subject: Test digest
65
66 This is a preamble
67 ------- Message one
68
69 From: Mister Burster <burst2@example.com>
70 To: Nobody 1 <nobody1@example.com>
71 Date: Thursday, 28 Sep 2006 00:01:00
72 Subject: Message one
73
74 - -This is message one
75
76 ------- Message two
77 From: Mister Burster <burst3@example.com>
78 To: Nobody 2 <nobody2@example.com>
79 Date: Thursday, 28 Sep 2006 00:02:00
80 Subject: Message two
81
82 This is message two
83 - For real.
84 ------- Message three
85
86
87
88 From: Mister Burster <burst4@example.com>
89 To: Nobody 3 <nobody3@example.com>
90 Date: Thursday, 28 Sep 2006 00:03:00
91 Subject: Message three
92
93 Will this one work?
94
95
96 ------ Message three
97 End of all messages
98 EOF
99
100 burst 14 || exit
101
102 run_test 'scan -width 80 14-last' \
103 "  14  09/29 Test Burst Messag  Test digest<<This is a preamble ------- Message 
104   15+ 09/28 Mister Burster     Message one<<-This is message one >>
105   16  09/28 Mister Burster     Message two<<This is message two For real. >>
106   17  09/28 Mister Burster     Message three<<Will this one work? >>"
107
108 #
109 # Check to see if each message is what we expect
110 #
111
112 run_test 'show -noheader -noshow 15' \
113 "From: Mister Burster <burst2@example.com>
114 To: Nobody 1 <nobody1@example.com>
115 Date: Thursday, 28 Sep 2006 00:01:00
116 Subject: Message one
117
118 -This is message one"
119
120 run_test 'show -noheader -noshow 16' \
121 "From: Mister Burster <burst3@example.com>
122 To: Nobody 2 <nobody2@example.com>
123 Date: Thursday, 28 Sep 2006 00:02:00
124 Subject: Message two
125
126 This is message two
127 For real."
128
129 #
130 # Backticks used by run_test can consume blank lines at the end of the
131 # command output, so use check for this one.
132 #
133
134 expected="${MH_TEST_DIR}/$$.expected"
135 cat > "${expected}" <<EOF
136 From: Mister Burster <burst4@example.com>
137 To: Nobody 3 <nobody3@example.com>
138 Date: Thursday, 28 Sep 2006 00:03:00
139 Subject: Message three
140
141 Will this one work?
142
143 EOF
144
145 check "${expected}" `mhpath 17`
146
147 exit $failed