]> diplodocus.org Git - nmh/blob - test/mkstemp/test-mkstemp
Added start_test/finish_test to a bunch of tests.
[nmh] / test / mkstemp / test-mkstemp
1 #!/bin/sh
2 ##################################
3 #
4 # Test creation of temporary file.
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 expected="$MH_TEST_DIR"/$$.expected
20 actual="$MH_TEST_DIR"/$$.actual
21
22 mkstemp="${MH_LIBEXEC_DIR}/mkstemp"
23
24 check_exit '-eq 1' $mkstemp -
25
26 $mkstemp -help | grep suffix >/dev/null && has_mkstemps=1 || has_mkstemps=0
27
28 cd "$MHTMPDIR"
29
30
31 # check -help
32 start_test "-help"
33 if [ $has_mkstemps -eq 1 ]; then
34 cat >$expected <<-'EOF'
35 Usage: mkstemp [switches]
36 switches are:
37 -directory
38 -prefix
39 -suffix
40 -version
41 -help
42 EOF
43 else
44 cat >$expected <<-'EOF'
45 Usage: mkstemp [switches]
46 switches are:
47 -directory
48 -prefix
49 -version
50 -help
51 EOF
52 fi
53
54 #### Skip nmh intro text.
55 run_prog $mkstemp -h 2>&1 | sed '/^$/,$d' >"$actual"
56 check "$expected" "$actual"
57
58
59 # check -version
60 start_test "-version"
61 # Verified same behavior as compiled mhmail.
62 case `$mkstemp -v` in
63 mkstemp\ --*) ;;
64 * ) printf '%s: mkstemp -v generated unexpected output\n' "$0" >&2
65 failed=`expr ${failed:-0} + 1`;;
66 esac
67
68
69 # check with no switches
70 start_test "with no switches"
71 tmpfile=`$mkstemp`
72 if [ -f "$tmpfile" ]; then
73 rm "$tmpfile"
74 else
75 failed=1
76 fi
77
78
79 # check -directory
80 start_test "-directory"
81 tmpfile=`$mkstemp -directory "$MHTMPDIR"`
82 [ -f "$tmpfile" ] && rm "$tmpfile" || failed=`expr ${failed:-0} + 1`
83 # Rely on exit status of grep to detect failure and terminate due to set -e:
84 check_tmpfile=`echo $tmpfile | grep "^$MHTMPDIR/......$" >/dev/null`
85 run_test 'eval echo $check_tmpfile' ''
86
87
88 # check -prefix
89 start_test "-prefix"
90 tmpfile=`$mkstemp -prefix mkstemptest`
91 [ -f "$tmpfile" ] && rm "$tmpfile" || failed=`expr ${failed:-0} + 1`
92 # Rely on exit status of grep to detect failure and terminate due to set -e:
93 check_tmpfile=`echo $tmpfile | grep '^mkstemptest......$' >/dev/null`
94 run_test 'eval echo $check_tmpfile' ''
95
96
97 if [ $has_mkstemps -eq 1 ]; then
98 # check -suffix
99 tmpfile=`$mkstemp -suffix .txt`
100 [ -f "$tmpfile" ] && rm "$tmpfile" || failed=`expr ${failed:-0} + 1`
101 # Rely on exit status of grep to detect failure and terminate due to set -e:
102 check_tmpfile=`echo $tmpfile | grep '^......\.txt$' >/dev/null`
103 run_test 'eval echo $check_tmpfile' ''
104 fi
105
106
107 finish_test
108 exit $failed