]>
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
54 Usage: fmtdump [switches]
62 #### Skip nmh intro text.
63 "$fmtdump" -help 2>&1 | sed '/^$/,$d' >"$actual"
64 check
"$expected" "$actual"
70 * ) printf '%s: fmtdump -v generated unexpected output\n' "$0" >&2
71 failed
=`expr ${failed:-0} + 1`;;
74 # check unknown switch
75 start_test
"unknown switch"
76 run_test
"$fmtdump -nonexistent" 'fmtdump: -nonexistent unknown'
78 # check with no switches
79 start_test
"with no switches"
82 NUMF, width 4, fill ' '
84 IF_V_NE 0 continue else goto L0
88 L1: LS_COMP, comp "replied"
89 IF_S continue else goto L2
93 L3: 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 L4
105 L5: MYMBOX, c_name "from", c_type <ADDR>
106 LV_COMPFLAG, comp "from", c_type <ADDR>
107 IF_V_NE 0 continue else goto L6
108 LS_COMP, comp "to", c_type <ADDR>
109 IF_S continue else goto L6
111 PARSEADDR, c_name "to", c_type <ADDR>
112 LS_FRIENDLY, c_name "to", c_type <ADDR>
114 STRF, width 14, fill ' '
115 L6: IF_V_EQ 0 continue else goto L7
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 L8
133 run_prog
$fmtdump >$actual 2>&1
134 check
$expected $actual
140 NUMF, width 4, fill ' '
142 IF_V_NE 0 continue else goto L0
146 L1: LS_COMP, comp "replied"
147 IF_S continue else goto L2
151 L3: PARSEDATE, c_name "date", c_type <DATE>
152 LV_MON, c_name "date", c_type <DATE>
153 NUMF, width 2, fill '0'
155 PARSEDATE, c_name "date", c_type <DATE>
156 LV_MDAY, c_name "date", c_type <DATE>
157 NUMF, width 2, fill '0'
158 LS_COMP, comp "date", c_type <DATE>
159 IF_S continue else goto L4
163 L5: MYMBOX, c_name "from", c_type <ADDR>
164 LV_COMPFLAG, comp "from", c_type <ADDR>
165 IF_V_NE 0 continue else goto L6
166 LS_COMP, comp "to", c_type <ADDR>
167 IF_S continue else goto L6
169 PARSEADDR, c_name "to", c_type <ADDR>
170 LS_FRIENDLY, c_name "to", c_type <ADDR>
173 STRF, width 14, fill ' '
174 L6: IF_V_EQ 0 continue else goto L7
175 PARSEADDR, c_name "from", c_type <ADDR>
176 LS_FRIENDLY, c_name "from", c_type <ADDR>
179 STRF, width 17, fill ' '
181 LS_COMP, comp "subject"
185 IF_S continue else goto L8
193 run_prog
$fmtdump -form "$MH_INST_DIR${nmhetcdir}/scan.default" >$actual 2>&1
194 check
$expected $actual
199 LS_LIT str "1234567890"
200 IF_S continue else goto L0
206 run_prog
$fmtdump -format '%<(lit 1234567890)%(strlen)%>' >$actual 2>&1
207 check
$expected $actual