Tizen 2.0 Release
[external/tizen-coreutils.git] / tests / mv / into-self
1 #! /bin/sh
2 # Demonstrate how mv fails when it tries to move a directory into itself.
3
4 # Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
5
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 # 02110-1301, USA.
20
21 if test "$VERBOSE" = yes; then
22   set -x
23   mv --version
24 fi
25
26 dir=toself-dir
27 file=toself-file
28
29 test_failure=0
30
31 rm -rf $dir $file || test_failure=1
32 mkdir -p $dir/a/b || test_failure=1
33 touch $file || test_failure=1
34
35 if test $test_failure = 1; then
36   echo 'failure in testing framework'
37   exit 1
38 fi
39
40 fail=0
41
42 # Make sure we get English translations.
43 . $srcdir/../lang-default
44
45 # This mv command should fail.
46 mv $dir $file $dir > out 2>&1 && fail=1
47
48 sed \
49    -e "s,mv:,XXX:," \
50    -e "s,$dir,SRC," \
51    -e "s,$dir/$dir,DEST," \
52   out > out2
53
54 cat > exp <<\EOF
55 XXX: cannot move `SRC' to a subdirectory of itself, `DEST'
56 EOF
57
58 cmp out2 exp || fail=1
59
60 # Make sure the file is gone.
61 test -f $file && fail=1
62 # Make sure the directory is *not* moved.
63 test -d $dir || fail=1
64 test -d $dir/$dir && fail=1
65 # Make sure the file has been moved to the right place.
66 test -f $dir/$file || fail=1
67 rm -rf $dir $file out out2 exp
68
69 exit $fail