]>
diplodocus.org Git - nmh/blob - test/format/test-fmtdump
2 ######################################################
6 ######################################################
10 if test -z "${MH_OBJ_DIR}"; then
11 srcdir
=`dirname $0`/..
/..
12 MH_OBJ_DIR
=`cd $srcdir && pwd`; export MH_OBJ_DIR
15 .
"$MH_OBJ_DIR/test/common.sh"
19 # Use proper program, likely not the first one on PATH.
20 fmtdump
="${MH_LIBEXEC_DIR}/fmtdump"
22 check_exit
'-eq 1' "$fmtdump" -
23 check_exit
'-eq 1' "$fmtdump" -form
24 check_exit
'-eq 1' "$fmtdump" -format
25 check_exit
'-eq 1' "$fmtdump" foo bar
26 check_exit
'-eq 0' "$fmtdump" -format '
27 %4{} %(eq) %(getenv) %(decodecomp{}) %(trim{}) %(putaddr)
28 %(putlit) %(zputlit) %(compval{}) %(num)
29 %(plus) %(minus) %(multiply) %(divide) %(modulo)
30 %(charleft) %(kilo) %(kibi)
31 %(month{}) %(tzone{}) %(day{}) %(weekday{}) %(tws{}) %(pretty{})
32 %(sec{}) %(min{}) %(hour{}) %(year{}) %(yday{}) %(wday{})
33 %(clock{}) %(rclock{}) %(sday{}) %(dst{}) %(szone{})
34 %(date2local{}) %(date2gmt{})
36 check_exit
'-eq 0' "$fmtdump" -format '
37 %(addr{}) %(pers{}) %(mbox{}) %(host{}) %(path{}) %(gname{})
38 %(note{}) %(proper{}) %(type{}) %(ingrp{}) %(nohost{})
39 %(formataddr) %(concataddr) %(getmymbox{}) %(getmyaddr{})
40 %<(null)%> %<(gt)%> %<(match)%> %<(amatch)%>
41 %(null) %(nonnull) %(ne) %(gt) %(match) %(amatch)
43 check_exit
'-eq 0' "$fmtdump" -format "`printf '\302\010\014\015\011\177'`"
45 expected
=$MH_TEST_DIR/$$.expected
46 expected_err
=$MH_TEST_DIR/$$.expected_err
47 actual
=$MH_TEST_DIR/$$.actual
48 actual_err
=$MH_TEST_DIR/$$.actual_err
53 Usage: fmtdump [switches]
61 #### Skip nmh intro text.
62 "$fmtdump" -help | sed '/^$/,$d' >"$actual" 2>&1
63 check
"$expected" "$actual"
68 * ) printf '%s: fmtdump -v generated unexpected output\n' "$0" >&2
69 failed
=`expr ${failed:-0} + 1`;;
72 # check unknown switch
73 run_test
"$fmtdump -nonexistent" 'fmtdump: -nonexistent unknown'
75 # check with no switches
78 NUMF, width 4, fill ' '
80 IF_V_NE 0 continue else goto L0
84 L1: LS_COMP, comp "replied"
85 IF_S continue else goto L2
88 L2: LS_COMP, comp "encrypted"
89 IF_S continue else goto L4
93 L5: PARSEDATE, c_name "date", c_type <DATE>
94 LV_MON, c_name "date", c_type <DATE>
95 NUMF, width 2, fill '0'
97 PARSEDATE, c_name "date", c_type <DATE>
98 LV_MDAY, c_name "date", c_type <DATE>
99 NUMF, width 2, fill '0'
100 LS_COMP, comp "date", c_type <DATE>
101 IF_S continue else goto L6
105 L7: MYMBOX, c_name "from", c_type <ADDR>
106 LV_COMPFLAG, comp "from", c_type <ADDR>
107 IF_V_NE 0 continue else goto L8
108 LS_COMP, comp "to", c_type <ADDR>
109 IF_S continue else goto L8
111 PARSEADDR, c_name "to", c_type <ADDR>
112 LS_FRIENDLY, c_name "to", c_type <ADDR>
114 STRF, width 14, fill ' '
115 L8: IF_V_EQ 0 continue else goto L9
116 PARSEADDR, c_name "from", c_type <ADDR>
117 LS_FRIENDLY, c_name "from", c_type <ADDR>
119 STRF, width 17, fill ' '
121 LS_COMP, comp "subject"
125 IF_S continue else goto L10
133 run_prog
$fmtdump >$actual 2>&1
134 check
$expected $actual
139 NUMF, width 4, fill ' '
141 IF_V_NE 0 continue else goto L0
145 L1: LS_COMP, comp "replied"
146 IF_S continue else goto L2
149 L2: LS_COMP, comp "encrypted"
150 IF_S continue else goto L4
154 L5: PARSEDATE, c_name "date", c_type <DATE>
155 LV_MON, c_name "date", c_type <DATE>
156 NUMF, width 2, fill '0'
158 PARSEDATE, c_name "date", c_type <DATE>
159 LV_MDAY, c_name "date", c_type <DATE>
160 NUMF, width 2, fill '0'
161 LS_COMP, comp "date", c_type <DATE>
162 IF_S continue else goto L6
166 L7: MYMBOX, c_name "from", c_type <ADDR>
167 LV_COMPFLAG, comp "from", c_type <ADDR>
168 IF_V_NE 0 continue else goto L8
169 LS_COMP, comp "to", c_type <ADDR>
170 IF_S continue else goto L8
172 PARSEADDR, c_name "to", c_type <ADDR>
173 LS_FRIENDLY, c_name "to", c_type <ADDR>
176 STRF, width 14, fill ' '
177 L8: IF_V_EQ 0 continue else goto L9
178 PARSEADDR, c_name "from", c_type <ADDR>
179 LS_FRIENDLY, c_name "from", c_type <ADDR>
182 STRF, width 17, fill ' '
184 LS_COMP, comp "subject"
188 IF_S continue else goto L10
196 run_prog
$fmtdump -form "$MH_INST_DIR${nmhetcdir}/scan.default" >$actual 2>&1
197 check
$expected $actual
201 LS_LIT str "1234567890"
202 IF_S continue else goto L0
208 run_prog
$fmtdump -format '%<(lit 1234567890)%(strlen)%>' >$actual 2>&1
209 check
$expected $actual