d7afc5f4c626f25ecb7385fd44189ce82358d45a
[platform/upstream/coreutils.git] / tests / mv / perm-1
1 #!/bin/sh
2 # ensure that mv gives one diagnostic, not two, when failing
3 # due to lack of permissions
4
5 if test "$VERBOSE" = yes; then
6   set -x
7   mv --version
8 fi
9
10 . $srcdir/../envvar-check
11 . $srcdir/../lang-default
12 PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
13
14 pwd=`pwd`
15 t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
16 trap 'status=$?; cd $pwd; chmod -R u+rwx $t0; rm -rf $t0 && exit $status' 0
17 trap '(exit $?); exit' 1 2 13 15
18
19 framework_failure=0
20 mkdir -p $tmp || framework_failure=1
21 cd $tmp || framework_failure=1
22 mkdir -p no-write/dir || framework_failure=1
23 chmod u-w no-write || framework_failure=1
24
25 if test $framework_failure = 1; then
26   echo "$0: failure in testing framework" 1>&2
27   (exit 1); exit 1
28 fi
29
30 fail=0
31
32 mv no-write/dir . > out 2>&1 && fail=1
33 cat <<\EOF > exp
34 mv: cannot move `no-write/dir' to `./dir': Permission denied
35 EOF
36
37 cmp out exp || fail=1
38 test $fail = 1 && diff out exp 2> /dev/null
39
40 (exit $fail); exit $fail