]> diplodocus.org Git - nmh/blob - test/folder/test-packf
sortm.c: Flip get_fields()'s logic to simplify.
[nmh] / test / folder / test-packf
1 #!/bin/sh
2 ######################################################
3 #
4 # Test packf
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 check_exit '-eq 1' packf -
20
21 expected="$MH_TEST_DIR/$$.expected"
22 actual="$MH_TEST_DIR/$$.actual"
23
24
25 # check -help
26 cat >"$expected" <<EOF
27 Usage: packf [+folder] [msgs] [switches]
28 switches are:
29 -file name
30 -mbox
31 -mmdf
32 -version
33 -help
34 EOF
35
36 #### Skip nmh intro text.
37 packf -help | sed '/^$/,$d' >"$actual" 2>&1
38 check "$expected" "$actual"
39
40 # check -version
41 case `packf -v` in
42 packf\ --*) ;;
43 * ) printf '%s: packf -v generated unexpected output\n' "$0" >&2
44 failed=`expr ${failed:-0} + 1`;;
45 esac
46
47 # check unknown switch
48 run_test "packf -nonexistent" 'packf: -nonexistent unknown'
49
50 cd "${MH_TEST_DIR}" || exit 1
51 printf 'y\n' >Mail/yes
52
53 # check with no switches
54 run_prog packf <Mail/yes
55 inc +inbox2 -file msgbox <Mail/yes >/dev/null
56 rm -f msgbox .msgbox.map
57 for i in `pick +inbox`; do
58 diff "`mhpath +inbox $i`" "`mhpath +inbox2 $i`"
59 done
60 run_test "printf $i" '10'
61 rmm +inbox2 -unlink `pick +inbox2`
62
63 # check +folder
64 run_prog packf +inbox <Mail/yes
65 inc +inbox2 -file msgbox >/dev/null
66 rm -f msgbox .msgbox.map
67 for i in `pick +inbox`; do
68 diff "`mhpath +inbox $i`" "`mhpath +inbox2 $i`"
69 done
70 run_test "printf $i" '10'
71 rmm +inbox2 -unlink `pick +inbox2`
72
73 # check msgs
74 run_prog packf +inbox 1 2 3 <Mail/yes
75 inc +inbox2 -file msgbox >/dev/null
76 rm -f msgbox .msgbox.map
77 for i in `pick +inbox2`; do
78 diff "`mhpath +inbox $i`" "`mhpath +inbox2 $i`"
79 done
80 run_test "printf $i" '3'
81 rmm +inbox2 -unlink `pick +inbox2`
82
83 # check -file
84 run_prog packf +inbox -file msgbox2 <Mail/yes
85 inc +inbox2 -file msgbox2 >/dev/null
86 for i in `pick +inbox2`; do
87 diff "`mhpath +inbox $i`" "`mhpath +inbox2 $i`"
88 done
89 run_test "printf $i" '10'
90 rmm +inbox2 -unlink `pick +inbox2`
91
92 # check append to existing mbox file
93 run_prog packf +inbox -file msgbox2 <Mail/yes
94 inc +inbox2 -file msgbox2 >/dev/null
95 rm -f msgbox2 .msgbox2.map
96 for i in `pick +inbox2`; do
97 if [ $i -le 10 ]; then
98 diff "`mhpath +inbox $i`" "`mhpath +inbox2 $i`"
99 else
100 arith_eval $i - 10
101 diff "`mhpath +inbox $arith_val`" "`mhpath +inbox2 $i`"
102 fi
103 done
104 run_test "printf $i" '20'
105 rmm +inbox2 -unlink `pick +inbox2`
106
107 # check -mbox
108 run_prog packf +inbox -mbox <Mail/yes
109 inc +inbox2 -file msgbox >/dev/null
110 rm -f msgbox .msgbox.map
111 for i in `pick +inbox2`; do
112 diff "`mhpath +inbox $i`" "`mhpath +inbox2 $i`"
113 done
114 run_test "printf $i" '10'
115 rmm +inbox2 -unlink `pick +inbox2`
116
117 # check -mmdf
118 run_prog packf +inbox -mmdf <Mail/yes
119 inc +inbox2 -file msgbox >/dev/null
120 rm -f msgbox .msgbox.map
121 for i in `pick +inbox2`; do
122 diff "`mhpath +inbox $i`" "`mhpath +inbox2 $i`"
123 done
124 run_test "printf $i" '10'
125 rmm +inbox2 -unlink `pick +inbox2`
126
127 # check append to existing mmdf file
128 run_prog packf +inbox -mmdf <Mail/yes
129 inc +inbox2 -file msgbox >/dev/null
130 rm -f msgbox .msgbox.map
131 for i in `pick +inbox2`; do
132 if [ $i -le 10 ]; then
133 diff "`mhpath +inbox $i`" "`mhpath +inbox2 $i`"
134 else
135 arith_eval $i - 10
136 diff "`mhpath +inbox $arith_val`" "`mhpath +inbox2 $i`"
137 fi
138 done
139 run_test "printf $i" '10'
140 rmm +inbox2 -unlink `pick +inbox2`
141
142
143 exit ${failed:-0}