Add test to check for correct handling of 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                 re = ".{" length(prefix) "}."
21                 sub(re, prefix " ", s)
22                 print s
23         }'
24 }
25
26 len=997
27
28 # Write message with long header line
29 msgfile=$(mhpath b)
30 msgnum=$(basename $msgfile)
31 cat > $msgfile <<-EOF
32 From: foo@example.edu
33 To: bar@example.edu
34 `genlongsubject $len`
35 Date: Sun, 15 Jul 2018 12:26:59 +0200
36
37 foo
38 EOF
39
40 # check it
41 cat > $expected <<-EOF
42 Date:    Sun, 15 Jul 2018 12:26:59 +0200
43 From:    foo@example.edu
44 To:      bar@example.edu
45 `genlongsubject $len`
46
47 part       text/plain                   4
48 foo
49 EOF
50
51 COLUMNS=2000 show $msgnum > $actual 2>&1
52 diff -u $expected $actual
53
54
55 len=998
56
57 # Write message with long header line
58 msgfile=$(mhpath b)
59 msgnum=$(basename $msgfile)
60 cat > $msgfile <<-EOF
61 From: foo@example.edu
62 To: bar@example.edu
63 `genlongsubject $len`
64 Date: Sun, 15 Jul 2018 12:26:59 +0200
65
66 foo
67 EOF
68
69 # check it
70 cat > $expected <<-EOF
71 Date:    Sun, 15 Jul 2018 12:26:59 +0200
72 From:    foo@example.edu
73 To:      bar@example.edu
74 `genlongsubject $len`
75
76 part       text/plain                   4
77 foo
78 EOF
79
80 COLUMNS=2000 show $msgnum > $actual 2>&1
81 diff -u $expected $actual
82
83
84 len=999
85
86 # Write message with long header line
87 msgfile=$(mhpath b)
88 msgnum=$(basename $msgfile)
89 cat > $msgfile <<-EOF
90 From: foo@example.edu
91 To: bar@example.edu
92 `genlongsubject $len`
93 Date: Sun, 15 Jul 2018 12:26:59 +0200
94
95 foo
96 EOF
97
98 # check it
99 cat > $expected <<-EOF
100 mhl: format error in message 13
101 part       text/plain                   4
102 foo
103 EOF
104
105 COLUMNS=2000 show $msgnum > $actual 2>&1
106 diff -u $expected $actual
107