3 # Test bogus and strange headers
8 expected=$MH_TEST_DIR/$$.expected
10 # Write message with bogus header field (missing blank line, really).
13 msgnum="${msgfile##*/}"
15 Date: Sun, 18 Dec 2005 00:52:39 +0100
19 This is a multi-part message in MIME format.
21 I am a stupid spammer.
24 runandcheck "scan $msgnum" <<!
25 ??Format error (message $msgnum) in component 5
26 $msgnum 2005-12-18 00:52 foo@example.edu test
29 runandcheck "show $msgnum" <<!
30 show: message format error in component #5
35 # check m_getfld() handling of empty header field
38 msgnum="${msgfile##*/}"
39 printf 'Date: Sat, 12 Jan 2013 09:07:01 -0600\nReceived:' >"$msgfile"
41 runandcheck "scan l" <<!
42 ??Format error (message $msgnum) in component 2
43 $msgnum 2013-01-12 09:07
48 # check m_getfld() handling of excessively long header field name
51 msgnum="${msgfile##*/}"
53 Date: Tue, 15 Jan 2013 21:13:12 -0600
54 ThisHeaderFieldNameIsWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayTooLong: OK
57 runandcheck "scan l" <<!
58 scan: line "ThisHeaderFieldNameIsWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayTooLong: OK" too long
59 ??Format error (message $msgnum) in component 2
60 $msgnum 2013-01-15 21:13
65 # check m_getfld() handling of header field name with whitespace
68 msgnum="${msgfile##*/}"
70 Date: Thu, 17 Jan 2013 19:33:46 -0600
71 A header field name with whitespace: foo
72 Subject: Will this be printed?
78 runandcheck "scan l" <<!
79 ??Format error (message $msgnum) in component 2
80 $msgnum 2013-01-17 19:33
85 # check m_getfld() handling of header field name without a colon
88 msgnum="${msgfile##*/}"
90 Date: Thu, 17 Jan 2013 19:33:46 -0600
91 A_header_field_name_without_a_colon_..._or_is_this_the_first_line_of_the_body_question-mark
92 Subject: Will this be printed?
98 runandcheck "scan l" <<!
99 ??Format error (message $msgnum) in component 2
100 $msgnum 2013-01-17 19:33
105 # check m_getfld() handling of empty field name
108 msgnum="${msgfile##*/}"
110 Date: Thu, 17 Jan 2013 19:33:46 -0600
112 Subject: Will this be printed?
118 runandcheck "scan l" <<!
119 ??Format error (message $msgnum) in component 2
120 $msgnum 2013-01-17 19:33
126 # check m_getfld() handling of dashed body separator (as in drafts)
129 msgnum="${msgfile##*/}"
131 Date: Thu, 17 Jan 2013 19:33:46 -0600
133 Subject: Will this be printed?
139 runandcheck "scan l" <<!
140 $msgnum 2013-01-17 19:33
145 msgnum="${msgfile##*/}"
147 Date: Thu, 17 Jan 2013 19:33:46 -0600
149 Subject: Will this be printed?
155 runandcheck "scan l" <<!
156 $msgnum 2013-01-17 19:33
161 msgnum="${msgfile##*/}"
163 Date: Thu, 17 Jan 2013 19:33:46 -0600
165 Subject: Will this be printed?
171 runandcheck "scan l" <<!
172 ??Format error (message $msgnum) in component 2
173 $msgnum 2013-01-17 19:33
178 msgnum="${msgfile##*/}"
180 Date: Thu, 17 Jan 2013 19:33:46 -0600
182 Subject: Will this be printed?
188 runandcheck "scan l" <<!
189 ??Format error (message $msgnum) in component 2
190 $msgnum 2013-01-17 19:33
195 msgnum="${msgfile##*/}"
197 Date: Thu, 17 Jan 2013 19:33:46 -0600
199 Subject: Will this be printed?
205 runandcheck "scan l" <<!
206 ??Format error (message $msgnum) in component 2
207 $msgnum 2013-01-17 19:33
211 # valid headers that might be treated as body separators but should not
214 msgnum="${msgfile##*/}"
216 Date: Thu, 17 Jan 2013 19:33:46 -0600
217 -: strange but valid header name
218 -------: also a valid header name
219 -dash: nothing special if it start with a dash
220 -------dash: or with many dashes
221 -..|.-|...|....: could even be morse code ;-)
222 sort</etc/passwd|lp&&date: ... o ar command lins *eek*
223 Subject: This will be printed!
229 runandcheck "scan l" <<!
230 $msgnum 2013-01-17 19:33 This will be printed!