138c72489cf43301a317dfa98afdfb965deb5387
[mmh] / test / tests / show / test-longlines
1 #!/bin/sh
2 ######################################################
3 #
4 # Test long header line handling (998 chars)
5 #
6 ######################################################
7
8 set -e
9
10 expected=$MH_TEST_DIR/$$.expected
11 actual=$MH_TEST_DIR/$$.actual
12
13 genlongsubject() {
14         len="${1:-998}"
15         awk -v len="$len" 'BEGIN {
16                 prefix = "Subject: " len
17                 while (i++<len) {
18                         s = s "x"
19                 }
20                 re = ".{" length(prefix) "}."
21                 sub(re, prefix " ", s)
22                 print s
23         }'
24 }
25
26 addcr() {
27         awk '{printf($0 "\r\n")}'
28 }
29
30
31 len=997
32
33 # Write message with long header line
34 msgfile=$(mhpath b)
35 msgnum=$(basename $msgfile)
36 cat > $msgfile <<-EOF
37 From: foo@example.edu
38 To: bar@example.edu
39 `genlongsubject $len`
40 Date: Sun, 15 Jul 2018 12:26:59 +0200
41
42 foo
43 EOF
44
45 # check it
46 cat > $expected <<-EOF
47 Date:    Sun, 15 Jul 2018 12:26:59 +0200
48 From:    foo@example.edu
49 To:      bar@example.edu
50 `genlongsubject $len`
51
52 part       text/plain                   4
53 foo
54 EOF
55
56 COLUMNS=2000 show $msgnum > $actual 2>&1
57 diff -u $expected $actual
58
59
60 len=998
61
62 # Write message with long header line
63 msgfile=$(mhpath b)
64 msgnum=$(basename $msgfile)
65 cat > $msgfile <<-EOF
66 From: foo@example.edu
67 To: bar@example.edu
68 `genlongsubject $len`
69 Date: Sun, 15 Jul 2018 12:26:59 +0200
70
71 foo
72 EOF
73
74 # check it
75 cat > $expected <<-EOF
76 Date:    Sun, 15 Jul 2018 12:26:59 +0200
77 From:    foo@example.edu
78 To:      bar@example.edu
79 `genlongsubject $len`
80
81 part       text/plain                   4
82 foo
83 EOF
84
85 COLUMNS=2000 show $msgnum > $actual 2>&1
86 diff -u $expected $actual
87
88
89 len=999
90
91 # Write message with long header line
92 msgfile=$(mhpath b)
93 msgnum=$(basename $msgfile)
94 cat > $msgfile <<-EOF
95 From: foo@example.edu
96 To: bar@example.edu
97 `genlongsubject $len`
98 Date: Sun, 15 Jul 2018 12:26:59 +0200
99
100 foo
101 EOF
102
103 # check it
104 cat > $expected <<-EOF
105 mhl: format error in message 13
106 part       text/plain                   4
107 foo
108 EOF
109
110 COLUMNS=2000 show $msgnum > $actual 2>&1
111 diff -u $expected $actual
112
113
114
115 # now with CRLF
116
117
118 len=998
119
120 # Write message with long header line
121 msgfile=$(mhpath b)
122 msgnum=$(basename $msgfile)
123 cat > $msgfile <<-EOF
124 From: foo@example.edu
125 To: bar@example.edu
126 `genlongsubject $len | addcr`
127 Date: Sun, 15 Jul 2018 12:26:59 +0200
128
129 foo
130 EOF
131
132 # check it
133 cat > $expected <<-EOF
134 Date:    Sun, 15 Jul 2018 12:26:59 +0200
135 From:    foo@example.edu
136 To:      bar@example.edu
137 `genlongsubject $len`
138
139 part       text/plain                   4
140 foo
141 EOF
142
143 COLUMNS=2000 show $msgnum > $actual 2>&1
144 diff -u $expected $actual
145
146
147 len=999
148
149 # Write message with long header line
150 msgfile=$(mhpath b)
151 msgnum=$(basename $msgfile)
152 cat > $msgfile <<-EOF
153 From: foo@example.edu
154 To: bar@example.edu
155 `genlongsubject $len | addcr`
156 Date: Sun, 15 Jul 2018 12:26:59 +0200
157
158 foo
159 EOF
160
161 # check it
162 cat > $expected <<-EOF
163 mhl: format error in message 15
164 part       text/plain                   4
165 foo
166 EOF
167
168 COLUMNS=2000 show $msgnum > $actual 2>&1
169 diff -u $expected $actual
170