c141ed18bb510cc120129c704e3f070426df3769
[platform/upstream/coreutils.git] / tests / cp / dir-vs-file
1 #!/bin/sh
2 # A directory may not replace an existing file.
3
4 if test "$VERBOSE" = yes; then
5   set -x
6   cp --version
7 fi
8
9 . $srcdir/../envvar-check
10
11 pwd=`pwd`
12 tmp=dirvfile.$$
13 trap 'status=$?; cd $pwd; rm -rf $tmp && exit $status' 0
14 trap '(exit $?); exit' 1 2 13 15
15
16 framework_failure=0
17 mkdir $tmp || framework_failure=1
18 cd $tmp || framework_failure=1
19
20 mkdir dir || framework_failure=1
21 touch file || framework_failure=1
22
23 if test $framework_failure = 1; then
24   echo 'failure in testing framework' 1>&2
25   (exit 1); exit
26 fi
27
28 fail=0
29
30 # In 4.0.35, this cp invocation silently succeeded.
31 cp -R dir file 2>/dev/null && fail=1
32
33 # Make sure file is not replaced with a directory.
34 # In 4.0.35, it was.
35 test -f file || fail=1
36
37 (exit $fail); exit