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