]> diplodocus.org Git - nmh/blob - test/format/test-dp
Added start_test/finish_test to a bunch of tests.
[nmh] / test / format / test-dp
1 #!/bin/sh
2 ######################################################
3 #
4 # Test dp
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 dp="${MH_LIBEXEC_DIR}/dp"
21
22 check_exit '-eq 1' $dp -
23 check_exit '-eq 1' $dp -format foo -form
24 check_exit '-eq 1' $dp -form foo -format
25 check_exit '-eq 1' $dp -width
26 x=tendixzehn
27 l=$x$x$x$x$x
28 c=$l$l
29 check_exit '-eq 1' $dp `echo $c | sed 's/./ &/g'` 101
30 COLUMNS=1 check_exit '-eq 0' $dp foo
31 check_exit '-eq 0' $dp -width 0 foo
32
33 expected="$MH_TEST_DIR/$$.expected"
34 expected_err="$MH_TEST_DIR/$$.expected_err"
35 actual="$MH_TEST_DIR/$$.actual"
36 actual_err="$MH_TEST_DIR/$$.actual_err"
37
38
39 # check -help
40 start_test "-help"
41 cat >"$expected" <<EOF
42 Usage: dp [switches] dates ...
43 switches are:
44 -form formatfile
45 -(forma)t string
46 -width columns
47 -version
48 -help
49 EOF
50
51 #### Skip nmh intro text.
52 run_prog "$dp" -help 2>&1 | sed '/^$/,$d' >"$actual"
53 check "$expected" "$actual"
54
55 # check -version
56 start_test "-version"
57 case `$dp -v` in
58 dp\ --*) ;;
59 * ) printf '%s: dp -v generated unexpected output\n' "$0" >&2
60 failed=`expr ${failed:-0} + 1`;;
61 esac
62
63 # check unknown switch
64 start_test "unknown switch"
65 run_test "$dp -nonexistent" 'dp: -nonexistent unknown'
66
67 # check with no switches
68 start_test "with no switches"
69 run_test "$dp" 'dp: usage: dp [switches] dates ...'
70
71 # check with one valid date
72 start_test "with one valid date"
73 cat >"$expected" <<EOF
74 Sun, 01 Jul 2012 00:00:00
75 EOF
76
77 run_prog $dp 'Sun Jul 1 2012' > "$actual" 2>&1
78 check "$expected" "$actual"
79
80 # check with two valid dates
81 start_test "with two valid dates"
82 cat >"$expected" <<EOF
83 Sun, 01 Jul 2012 00:00:00
84 Mon, 02 Jul 2012 00:00:00
85 EOF
86
87 run_prog $dp 'Sun Jul 1 2012' 'Mon Jul 2 2012' > "$actual" 2>&1
88 check "$expected" "$actual"
89
90 # check with invalid date
91 start_test "with invalid date"
92 cat >"$expected" <<EOF
93 error: not a date
94 EOF
95
96 cat >"$expected_err" <<EOF
97 EOF
98
99 run_prog $dp 'not a date' > "$actual" 2> "$actual_err"
100 check "$expected" "$actual"
101 check "$expected_err" "$actual_err"
102
103 # check -form
104 start_test "-form"
105 form="${MH_TEST_DIR}/Mail/dp-form"
106 cat >"$form" <<'EOF'
107 %(day{text})
108 EOF
109
110 cat >"$expected" <<EOF
111 Sun
112 EOF
113
114 run_prog $dp -form "$form" 'Jul 1 2012' >$actual 2>&1
115 check $expected $actual
116 rm -f "$form"
117
118 # check -format
119 start_test "-format"
120 cat >"$expected" <<EOF
121 Sun
122 EOF
123
124 run_prog $dp -format '%(day{text})' 'Jul 1 2012' >$actual 2>&1
125 check $expected $actual
126
127 # check -width
128 start_test "-width"
129 cat >"$expected" <<EOF
130 Sun, 01 Jul 2012
131 EOF
132
133 run_prog $dp -width 17 'Sun Jul 1 2012' > "$actual" 2>&1
134 check "$expected" "$actual"
135
136
137 finish_test
138 exit ${failed:-0}