]> diplodocus.org Git - nmh/blob - test/format/test-dp
Fix netrc's token()'s bug if backslash escapes EOF.
[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 expected="$MH_TEST_DIR/$$.expected"
23 expected_err="$MH_TEST_DIR/$$.expected_err"
24 actual="$MH_TEST_DIR/$$.actual"
25 actual_err="$MH_TEST_DIR/$$.actual_err"
26
27
28 # check -help
29 cat >"$expected" <<EOF
30 Usage: dp [switches] dates ...
31 switches are:
32 -form formatfile
33 -(forma)t string
34 -width columns
35 -version
36 -help
37 EOF
38
39 #### Skip nmh intro text.
40 run_prog "$dp" -help | sed '/^$/,$d' >"$actual" 2>&1
41 check "$expected" "$actual"
42
43 # check -version
44 case `$dp -v` in
45 dp\ --*) ;;
46 * ) printf '%s: dp -v generated unexpected output\n' "$0" >&2
47 failed=`expr ${failed:-0} + 1`;;
48 esac
49
50 # check unknown switch
51 run_test "$dp -nonexistent" 'dp: -nonexistent unknown'
52
53 # check with no switches
54 run_test "$dp" 'dp: usage: dp [switches] dates ...'
55
56 # check with one valid date
57 cat >"$expected" <<EOF
58 Sun, 01 Jul 2012 00:00:00
59 EOF
60
61 run_prog $dp 'Sun Jul 1 2012' > "$actual" 2>&1
62 check "$expected" "$actual"
63
64 # check with two valid dates
65 cat >"$expected" <<EOF
66 Sun, 01 Jul 2012 00:00:00
67 Mon, 02 Jul 2012 00:00:00
68 EOF
69
70 run_prog $dp 'Sun Jul 1 2012' 'Mon Jul 2 2012' > "$actual" 2>&1
71 check "$expected" "$actual"
72
73 # check with invalid date
74 cat >"$expected" <<EOF
75 error: not a date
76 EOF
77
78 cat >"$expected_err" <<EOF
79 EOF
80
81 run_prog $dp 'not a date' > "$actual" 2> "$actual_err"
82 check "$expected" "$actual"
83 check "$expected_err" "$actual_err"
84
85 # check -form
86 form="${MH_TEST_DIR}/Mail/dp-form"
87 cat >"$form" <<'EOF'
88 %(day{text})
89 EOF
90
91 cat >"$expected" <<EOF
92 Sun
93 EOF
94
95 run_prog $dp -form "$form" 'Jul 1 2012' >$actual 2>&1
96 check $expected $actual
97 rm -f "$form"
98
99 # check -format
100 cat >"$expected" <<EOF
101 Sun
102 EOF
103
104 run_prog $dp -format '%(day{text})' 'Jul 1 2012' >$actual 2>&1
105 check $expected $actual
106
107 # check -width
108 cat >"$expected" <<EOF
109 Sun, 01 Jul 2012
110 EOF
111
112 run_prog $dp -width 17 'Sun Jul 1 2012' > "$actual" 2>&1
113 check "$expected" "$actual"
114
115
116 exit ${failed:-0}