]> diplodocus.org Git - nmh/blob - test/format/test-fmtdump
Forgot to reset the snoop callback one time.
[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 $fmtdump -help >$actual 2>&1
39 check $expected $actual
40
41 # check -version
42 case `$fmtdump -v` in
43 fmtdump\ --*) ;;
44 * ) printf '%s: fmtdump -v generated unexpected output\n' "$0" >&2
45 failed=`expr ${failed:-0} + 1`;;
46 esac
47
48 # check unknown switch
49 run_test "$fmtdump -nonexistent" 'fmtdump: -nonexistent unknown'
50
51 # check with no switches
52 cat >$expected <<EOF
53 LV_DAT, value dat[0]
54 NUMF, width 4, fill ' '
55 LV_DAT, value dat[1]
56 IF_V_NE 0 continue else goto L0
57 CHAR '+'
58 GOTO L1
59 L0: CHAR ' '
60 L1: LS_COMP, comp "replied"
61 IF_S continue else goto L2
62 CHAR '-'
63 GOTO L3
64 L2: LS_COMP, comp "encrypted"
65 IF_S continue else goto L4
66 CHAR 'E'
67 L3: GOTO L5
68 L4: CHAR ' '
69 L5: PARSEDATE, c_name "date", c_type <DATE>
70 LV_MON, c_name "date", c_type <DATE>
71 NUMF, width 2, fill '0'
72 CHAR '/'
73 PARSEDATE, c_name "date", c_type <DATE>
74 LV_MDAY, c_name "date", c_type <DATE>
75 NUMF, width 2, fill '0'
76 LS_COMP, comp "date", c_type <DATE>
77 IF_S continue else goto L6
78 CHAR ' '
79 GOTO L7
80 L6: CHAR '*'
81 L7: MYMBOX, c_name "from", c_type <ADDR>
82 LV_COMPFLAG, comp "from", c_type <ADDR>
83 IF_V_NE 0 continue else goto L8
84 LS_COMP, comp "to", c_type <ADDR>
85 IF_S continue else goto L8
86 LIT "To:"
87 PARSEADDR, c_name "to", c_type <ADDR>
88 LS_FRIENDLY, c_name "to", c_type <ADDR>
89 FT_LS_DECODE
90 STRF, width 14, fill ' '
91 L8: IF_V_EQ 0 continue else goto L9
92 PARSEADDR, c_name "from", c_type <ADDR>
93 LS_FRIENDLY, c_name "from", c_type <ADDR>
94 FT_LS_DECODE
95 STRF, width 17, fill ' '
96 L9: LIT " "
97 LS_COMP, comp "subject"
98 FT_LS_DECODE
99 STR
100 LS_COMP, comp "body"
101 IF_S continue else goto L10
102 LIT "<<"
103 COMP, comp "body"
104 LIT ">>"
105 L10: CHAR '\n'
106 DONE
107 EOF
108
109 run_prog $fmtdump >$actual 2>&1
110 check $expected $actual
111
112 # check -form
113 cat >$expected <<EOF
114 LV_DAT, value dat[0]
115 NUMF, width 4, fill ' '
116 LV_DAT, value dat[1]
117 IF_V_NE 0 continue else goto L0
118 CHAR '+'
119 GOTO L1
120 L0: CHAR ' '
121 L1: LS_COMP, comp "replied"
122 IF_S continue else goto L2
123 CHAR '-'
124 GOTO L3
125 L2: LS_COMP, comp "encrypted"
126 IF_S continue else goto L4
127 CHAR 'E'
128 L3: GOTO L5
129 L4: CHAR ' '
130 L5: PARSEDATE, c_name "date", c_type <DATE>
131 LV_MON, c_name "date", c_type <DATE>
132 NUMF, width 2, fill '0'
133 CHAR '/'
134 PARSEDATE, c_name "date", c_type <DATE>
135 LV_MDAY, c_name "date", c_type <DATE>
136 NUMF, width 2, fill '0'
137 LS_COMP, comp "date", c_type <DATE>
138 IF_S continue else goto L6
139 CHAR ' '
140 GOTO L7
141 L6: CHAR '*'
142 L7: MYMBOX, c_name "from", c_type <ADDR>
143 LV_COMPFLAG, comp "from", c_type <ADDR>
144 IF_V_NE 0 continue else goto L8
145 LS_COMP, comp "to", c_type <ADDR>
146 IF_S continue else goto L8
147 LIT "To:"
148 PARSEADDR, c_name "to", c_type <ADDR>
149 LS_FRIENDLY, c_name "to", c_type <ADDR>
150 FT_LS_DECODE
151
152 STRF, width 14, fill ' '
153 L8: IF_V_EQ 0 continue else goto L9
154 PARSEADDR, c_name "from", c_type <ADDR>
155 LS_FRIENDLY, c_name "from", c_type <ADDR>
156 FT_LS_DECODE
157
158 STRF, width 17, fill ' '
159 L9: LIT " "
160 LS_COMP, comp "subject"
161 FT_LS_DECODE
162 STR
163 LS_COMP, comp "body"
164 IF_S continue else goto L10
165 LIT "<<"
166 COMP, comp "body"
167 LIT ">>"
168 L10: CHAR '\n'
169 DONE
170 EOF
171
172 run_prog $fmtdump -form "$MH_INST_DIR${nmhetcdir}/scan.default" >$actual 2>&1
173 check $expected $actual
174
175 # check -format
176 cat >$expected <<EOF
177 LS_LIT str "1234567890"
178 IF_S continue else goto L0
179 LV_STRLEN
180 NUM
181 L0: DONE
182 EOF
183
184 run_prog $fmtdump -format '%<(lit 1234567890)%(strlen)%>' >$actual 2>&1
185 check $expected $actual
186
187
188 exit ${failed:-0}