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