2
# Ensure that moving hard-linked arguments onto existing destinations works.
3
# Likewise when using cp --preserve=link.
5
# Copyright (C) 2003-2012 Free Software Foundation, Inc.
7
# This program is free software: you can redistribute it and/or modify
8
# it under the terms of the GNU General Public License as published by
9
# the Free Software Foundation, either version 3 of the License, or
10
# (at your option) any later version.
12
# This program is distributed in the hope that it will be useful,
13
# but WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
# GNU General Public License for more details.
17
# You should have received a copy of the GNU General Public License
18
# along with this program. If not, see <http://www.gnu.org/licenses/>.
20
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
25
mkdir dst || framework_failure_
26
(cd dst && touch a b c) || framework_failure_
27
touch a || framework_failure_
28
ln a b || framework_failure_
29
ln a c || framework_failure_
32
# ======================================
33
cp --preserve=link a b c dst || fail=1
34
# The source files must remain.
40
# Three destination files must exist.
45
# The three i-node numbers must be the same.
46
ia=$(ls -i a|sed 's/ a//')
47
ib=$(ls -i b|sed 's/ b//')
48
ic=$(ls -i c|sed 's/ c//')
49
test $ia = $ib || fail=1
50
test $ia = $ic || fail=1
54
(cd dst && touch a b c)
56
# ======================================
57
mv a b c dst || fail=1
59
# The source files must be gone.
65
# Three destination files must exist.
70
# The three i-node numbers must be the same.
71
ia=$(ls -i a|sed 's/ a//')
72
ib=$(ls -i b|sed 's/ b//')
73
ic=$(ls -i c|sed 's/ c//')
74
test $ia = $ib || fail=1
75
test $ia = $ic || fail=1