mhl and mhbuild ignore to long lines
[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                 print prefix substr(s, length(prefix) + 1)
21         }'
22 }
23
24 addcr() {
25         awk '{printf($0 "\r\n")}'
26 }
27
28
29 # Ensure lines won't get folded
30 echo "mhl: -width 2000" >> "$MMH/profile"
31 trap 'printf "/^mhl:/d\nw\nq\n" | ed - "$MMH/profile"' 0 1 2 15
32
33
34 len=997
35
36 # Write message with long header line
37 msgfile=$(mhpath b)
38 msgnum=$(basename $msgfile)
39 cat > $msgfile <<-EOF
40 From: foo@example.edu
41 To: bar@example.edu
42 `genlongsubject $len`
43 Date: Sun, 15 Jul 2018 12:26:59 +0200
44
45 foo
46 EOF
47
48 # check it
49 cat > $expected <<-EOF
50 Date:    Sun, 15 Jul 2018 12:26:59 +0200
51 From:    foo@example.edu
52 To:      bar@example.edu
53 `genlongsubject $len`
54
55 part       text/plain                   4
56 foo
57 EOF
58
59 COLUMNS=2000 show $msgnum > $actual 2>&1
60 diff -u $expected $actual
61
62
63 len=998
64
65 # Write message with long header line
66 msgfile=$(mhpath b)
67 msgnum=$(basename $msgfile)
68 cat > $msgfile <<-EOF
69 From: foo@example.edu
70 To: bar@example.edu
71 `genlongsubject $len`
72 Date: Sun, 15 Jul 2018 12:26:59 +0200
73
74 foo
75 EOF
76
77 # check it
78 cat > $expected <<-EOF
79 Date:    Sun, 15 Jul 2018 12:26:59 +0200
80 From:    foo@example.edu
81 To:      bar@example.edu
82 `genlongsubject $len`
83
84 part       text/plain                   4
85 foo
86 EOF
87
88 COLUMNS=2000 show $msgnum > $actual 2>&1
89 diff -u $expected $actual
90
91
92 len=999
93
94 # Write message with long header line
95 msgfile=$(mhpath b)
96 msgnum=$(basename $msgfile)
97 cat > $msgfile <<-EOF
98 From: foo@example.edu
99 To: bar@example.edu
100 `genlongsubject $len`
101 Date: Sun, 15 Jul 2018 12:26:59 +0200
102
103 foo
104 EOF
105
106 # check it
107 cat > $expected <<-EOF
108 Date:    Sun, 15 Jul 2018 12:26:59 +0200
109 From:    foo@example.edu
110 To:      bar@example.edu
111 Subject: 999 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
112
113 part       text/plain                   4
114 foo
115 EOF
116
117 COLUMNS=2000 show $msgnum > $actual 2>&1
118 diff -u $expected $actual
119
120
121
122 # now with CRLF
123
124
125 len=998
126
127 # Write message with long header line
128 msgfile=$(mhpath b)
129 msgnum=$(basename $msgfile)
130 cat > $msgfile <<-EOF
131 From: foo@example.edu
132 To: bar@example.edu
133 `genlongsubject $len | addcr`
134 Date: Sun, 15 Jul 2018 12:26:59 +0200
135
136 foo
137 EOF
138
139 # check it
140 cat > $expected <<-EOF
141 Date:    Sun, 15 Jul 2018 12:26:59 +0200
142 From:    foo@example.edu
143 To:      bar@example.edu
144 `genlongsubject $len`
145
146 part       text/plain                   4
147 foo
148 EOF
149
150 COLUMNS=2000 show $msgnum > $actual 2>&1
151 diff -u $expected $actual
152
153
154 len=999
155
156 # Write message with long header line
157 msgfile=$(mhpath b)
158 msgnum=$(basename $msgfile)
159 cat > $msgfile <<-EOF
160 From: foo@example.edu
161 To: bar@example.edu
162 `genlongsubject $len | addcr`
163 Date: Sun, 15 Jul 2018 12:26:59 +0200
164
165 foo
166 EOF
167
168 # check it
169 cat > $expected <<-EOF
170 Date:    Sun, 15 Jul 2018 12:26:59 +0200
171 From:    foo@example.edu
172 To:      bar@example.edu
173 Subject: 999 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
174
175 part       text/plain                   4
176 foo
177 EOF
178
179 COLUMNS=2000 show $msgnum > $actual 2>&1
180 diff -u $expected $actual
181