*** empty log message ***
[coreutils.git] / tests / mv / i-3
blob40704708ac6650563a818c1bd6e6b13b328028e8
1 #!/bin/sh
2 # Make sure that `mv file unwritable-file' prompts the user
3 # and that `mv -f file unwritable-file' doesn't.
5 if test "$VERBOSE" = yes; then
6 set -x
7 mv --version
8 fi
10 . $srcdir/../envvar-check
11 . $srcdir/../lang-default
12 PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
14 pwd=`pwd`
15 tmp=mv-i.$$
16 trap 'status=$?; cd $pwd; rm -rf $tmp && exit $status' 0
17 trap '(exit $?); exit' 1 2 13 15
19 framework_failure=0
20 mkdir $tmp || framework_failure=1
21 cd $tmp || framework_failure=1
22 touch f g h i || framework_failure=1
23 chmod 0 g i || framework_failure=1
25 if test $framework_failure = 1; then
26 echo 'failure in testing framework' 1>&2
27 (exit 1); exit
30 fail=0
32 ls /dev/stdin >/dev/null 2>&1 \
33 || { (exit 77); exit; }
35 mv f g < /dev/stdin > out 2>&1 & pid=$!
36 sleep 1
37 kill $pid
39 # Make sure out contains the prompt.
40 case "`cat out`" in
41 "mv: overwrite \`g', overriding mode 0000?"*) ;;
42 *) fail=1 ;;
43 esac
45 mv -f h i > out 2>&1 || fail=1
46 test -f i || fail=1
47 test -f h && fail=1
49 # Make sure there was no prompt.
50 case "`cat out`" in
51 '') ;;
52 *) fail=1 ;;
53 esac
55 (exit $fail); exit