1#!/bin/sh
2# Force mv to use the copying code.
3# Consider the case where SRC and DEST are on different
4# partitions and DEST is a symlink to SRC.
5
6# Copyright (C) 1998-2023 Free Software Foundation, Inc.
7
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16# GNU General Public License for more details.
17
18# You should have received a copy of the GNU General Public License
19# along with this program.  If not, see <https://www.gnu.org/licenses/>.
20
21. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
22print_ver_ mv
23cleanup_() { rm -rf "$other_partition_tmpdir"; }
24. "$abs_srcdir/tests/other-fs-tmpdir"
25
26file="$other_partition_tmpdir/file"
27symlink=symlink
28
29
30echo whatever > $file || framework_failure_
31ln -s $file $symlink || framework_failure_
32
33# This mv command should exit nonzero.
34mv $symlink $file > out 2>&1 && fail=1
35
36# This should succeed.
37mv $file $symlink || fail=1
38
39sed \
40   -e "s,mv:,XXX:," \
41   -e "s,$file,YYY," \
42   -e "s,$symlink,ZZZ," \
43  out > out2
44
45cat > exp <<\EOF
46XXX: 'ZZZ' and 'YYY' are the same file
47EOF
48#'
49
50compare exp out2 || fail=1
51
52Exit $fail
53