]> diplodocus.org Git - nmh/blob - test/format/test-fmtdump
Fixed typo in -help message.
[nmh] / test / format / test-fmtdump
1 #!/bin/sh
2 ######################################################
3 #
4 # Test fmtdump
5 #
6 ######################################################
7
8 set -e
9
10 if test -z "${MH_OBJ_DIR}"; then
11 srcdir=`dirname $0`/../..
12 MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR
13 fi
14
15 . "$MH_OBJ_DIR/test/common.sh"
16
17 setup_test
18
19 # Use proper program, likely not the first one on PATH.
20 fmtdump="${MH_LIBEXEC_DIR}/fmtdump"
21
22 expected=$MH_TEST_DIR/$$.expected
23 expected_err=$MH_TEST_DIR/$$.expected_err
24 actual=$MH_TEST_DIR/$$.actual
25 actual_err=$MH_TEST_DIR/$$.actual_err
26
27
28 # check -help
29 cat >$expected <<EOF
30 Usage: fmtdump [switches]
31 switches are:
32 -form formatfile
33 -(forma)t string
34 -version
35 -help
36 EOF
37
38 #### Skip nmh intro text.
39 "$fmtdump" -help | sed '/^$/Q' >"$actual" 2>&1
40 check "$expected" "$actual"
41
42 # check -version
43 case `$fmtdump -v` in
44 fmtdump\ --*) ;;
45 * ) printf '%s: fmtdump -v generated unexpected output\n' "$0" >&2
46 failed=`expr ${failed:-0} + 1`;;
47 esac
48
49 # check unknown switch
50 run_test "$fmtdump -nonexistent" 'fmtdump: -nonexistent unknown'
51
52 # check with no switches
53 cat >$expected <<EOF
54 LV_DAT, value dat[0]
55 NUMF, width 4, fill ' '
56 LV_DAT, value dat[1]
57 IF_V_NE 0 continue else goto L0
58 CHAR '+'
59 GOTO L1
60 L0: CHAR ' '
61 L1: LS_COMP, comp "replied"
62 IF_S continue else goto L2
63 CHAR '-'
64 GOTO L3
65 L2: LS_COMP, comp "encrypted"
66 IF_S continue else goto L4
67 CHAR 'E'
68 L3: GOTO L5
69 L4: CHAR ' '
70 L5: PARSEDATE, c_name "date", c_type <DATE>
71 LV_MON, c_name "date", c_type <DATE>
72 NUMF, width 2, fill '0'
73 CHAR '/'
74 PARSEDATE, c_name "date", c_type <DATE>
75 LV_MDAY, c_name "date", c_type <DATE>
76 NUMF, width 2, fill '0'
77 LS_COMP, comp "date", c_type <DATE>
78 IF_S continue else goto L6
79 CHAR ' '
80 GOTO L7
81 L6: CHAR '*'
82 L7: MYMBOX, c_name "from", c_type <ADDR>
83 LV_COMPFLAG, comp "from", c_type <ADDR>
84 IF_V_NE 0 continue else goto L8
85 LS_COMP, comp "to", c_type <ADDR>
86 IF_S continue else goto L8
87 LIT "To:"
88 PARSEADDR, c_name "to", c_type <ADDR>
89 LS_FRIENDLY, c_name "to", c_type <ADDR>
90 FT_LS_DECODE
91 STRF, width 14, fill ' '
92 L8: IF_V_EQ 0 continue else goto L9
93 PARSEADDR, c_name "from", c_type <ADDR>
94 LS_FRIENDLY, c_name "from", c_type <ADDR>
95 FT_LS_DECODE
96 STRF, width 17, fill ' '
97 L9: LIT " "
98 LS_COMP, comp "subject"
99 FT_LS_DECODE
100 STR
101 LS_COMP, comp "body"
102 IF_S continue else goto L10
103 LIT "<<"
104 COMP, comp "body"
105 LIT ">>"
106 L10: CHAR '\n'
107 DONE
108 EOF
109
110 run_prog $fmtdump >$actual 2>&1
111 check $expected $actual
112
113 # check -form
114 cat >$expected <<EOF
115 LV_DAT, value dat[0]
116 NUMF, width 4, fill ' '
117 LV_DAT, value dat[1]
118 IF_V_NE 0 continue else goto L0
119 CHAR '+'
120 GOTO L1
121 L0: CHAR ' '
122 L1: LS_COMP, comp "replied"
123 IF_S continue else goto L2
124 CHAR '-'
125 GOTO L3
126 L2: LS_COMP, comp "encrypted"
127 IF_S continue else goto L4
128 CHAR 'E'
129 L3: GOTO L5
130 L4: CHAR ' '
131 L5: PARSEDATE, c_name "date", c_type <DATE>
132 LV_MON, c_name "date", c_type <DATE>
133 NUMF, width 2, fill '0'
134 CHAR '/'
135 PARSEDATE, c_name "date", c_type <DATE>
136 LV_MDAY, c_name "date", c_type <DATE>
137 NUMF, width 2, fill '0'
138 LS_COMP, comp "date", c_type <DATE>
139 IF_S continue else goto L6
140 CHAR ' '
141 GOTO L7
142 L6: CHAR '*'
143 L7: MYMBOX, c_name "from", c_type <ADDR>
144 LV_COMPFLAG, comp "from", c_type <ADDR>
145 IF_V_NE 0 continue else goto L8
146 LS_COMP, comp "to", c_type <ADDR>
147 IF_S continue else goto L8
148 LIT "To:"
149 PARSEADDR, c_name "to", c_type <ADDR>
150 LS_FRIENDLY, c_name "to", c_type <ADDR>
151 FT_LS_DECODE
152
153 STRF, width 14, fill ' '
154 L8: IF_V_EQ 0 continue else goto L9
155 PARSEADDR, c_name "from", c_type <ADDR>
156 LS_FRIENDLY, c_name "from", c_type <ADDR>
157 FT_LS_DECODE
158
159 STRF, width 17, fill ' '
160 L9: LIT " "
161 LS_COMP, comp "subject"
162 FT_LS_DECODE
163 STR
164 LS_COMP, comp "body"
165 IF_S continue else goto L10
166 LIT "<<"
167 COMP, comp "body"
168 LIT ">>"
169 L10: CHAR '\n'
170 DONE
171 EOF
172
173 run_prog $fmtdump -form "$MH_INST_DIR${nmhetcdir}/scan.default" >$actual 2>&1
174 check $expected $actual
175
176 # check -format
177 cat >$expected <<EOF
178 LS_LIT str "1234567890"
179 IF_S continue else goto L0
180 LV_STRLEN
181 NUM
182 L0: DONE
183 EOF
184
185 run_prog $fmtdump -format '%<(lit 1234567890)%(strlen)%>' >$actual 2>&1
186 check $expected $actual
187
188
189 exit ${failed:-0}