]>
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 2>&1 | sed '/^$/,$d' >"$actual"
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
89 L3: PARSEDATE, c_name "date", c_type <DATE>
90 LV_MON, c_name "date", c_type <DATE>
91 NUMF, width 2, fill '0'
93 PARSEDATE, c_name "date", c_type <DATE>
94 LV_MDAY, c_name "date", c_type <DATE>
95 NUMF, width 2, fill '0'
96 LS_COMP, comp "date", c_type <DATE>
97 IF_S continue else goto L4
101 L5: MYMBOX, c_name "from", c_type <ADDR>
102 LV_COMPFLAG, comp "from", c_type <ADDR>
103 IF_V_NE 0 continue else goto L6
104 LS_COMP, comp "to", c_type <ADDR>
105 IF_S continue else goto L6
107 PARSEADDR, c_name "to", c_type <ADDR>
108 LS_FRIENDLY, c_name "to", c_type <ADDR>
110 STRF, width 14, fill ' '
111 L6: IF_V_EQ 0 continue else goto L7
112 PARSEADDR, c_name "from", c_type <ADDR>
113 LS_FRIENDLY, c_name "from", c_type <ADDR>
115 STRF, width 17, fill ' '
117 LS_COMP, comp "subject"
121 IF_S continue else goto L8
129 run_prog
$fmtdump >$actual 2>&1
130 check
$expected $actual
135 NUMF, width 4, fill ' '
137 IF_V_NE 0 continue else goto L0
141 L1: LS_COMP, comp "replied"
142 IF_S continue else goto L2
146 L3: PARSEDATE, c_name "date", c_type <DATE>
147 LV_MON, c_name "date", c_type <DATE>
148 NUMF, width 2, fill '0'
150 PARSEDATE, c_name "date", c_type <DATE>
151 LV_MDAY, c_name "date", c_type <DATE>
152 NUMF, width 2, fill '0'
153 LS_COMP, comp "date", c_type <DATE>
154 IF_S continue else goto L4
158 L5: MYMBOX, c_name "from", c_type <ADDR>
159 LV_COMPFLAG, comp "from", c_type <ADDR>
160 IF_V_NE 0 continue else goto L6
161 LS_COMP, comp "to", c_type <ADDR>
162 IF_S continue else goto L6
164 PARSEADDR, c_name "to", c_type <ADDR>
165 LS_FRIENDLY, c_name "to", c_type <ADDR>
168 STRF, width 14, fill ' '
169 L6: IF_V_EQ 0 continue else goto L7
170 PARSEADDR, c_name "from", c_type <ADDR>
171 LS_FRIENDLY, c_name "from", c_type <ADDR>
174 STRF, width 17, fill ' '
176 LS_COMP, comp "subject"
180 IF_S continue else goto L8
188 run_prog
$fmtdump -form "$MH_INST_DIR${nmhetcdir}/scan.default" >$actual 2>&1
189 check
$expected $actual
193 LS_LIT str "1234567890"
194 IF_S continue else goto L0
200 run_prog
$fmtdump -format '%<(lit 1234567890)%(strlen)%>' >$actual 2>&1
201 check
$expected $actual