diff options
Diffstat (limited to 'tests/mv/hard-3')
-rwxr-xr-x | tests/mv/hard-3 | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/tests/mv/hard-3 b/tests/mv/hard-3 deleted file mode 100755 index ce83728..0000000 --- a/tests/mv/hard-3 +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/sh -# Ensure that using `cp --preserve=link' to copy hard-linked arguments -# onto existing destinations works, even when one of the link operations fails. - -# Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - - -# This bug was fixed in coreutils-4.5.9. -# To exercise this bug is non-trivial: -# Set-up requires at least three hard-linked files. In copying them, -# while preserving links, the initial copy must succeed, the attempt -# to create the second file via `link' must fail, and the final `link' -# (to create the third) must succeed. Before the corresponding fix, -# the first and third destination files would not be linked. -# -# Note that this is nominally a test of `cp', yet it is in the tests/mv -# directory, because it requires use of the --preserve=link option that -# mv enables by default. - -if test "$VERBOSE" = yes; then - set -x - cp --version -fi - -. $srcdir/../envvar-check -PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check - -pwd=`pwd` -t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$ -trap 'status=$?; cd "$pwd" && chmod -R u+rwx $t0 && rm -rf $t0 && exit $status' 0 -trap '(exit $?); exit $?' 1 2 13 15 - -framework_failure=0 -mkdir -p $tmp || framework_failure=1 -cd $tmp || framework_failure=1 -mkdir -p x dst/x || framework_failure=1 -touch dst/x/b || framework_failure=1 -chmod a-w dst/x -touch a || framework_failure=1 -ln a x/b || framework_failure=1 -ln a c || framework_failure=1 - -if test $framework_failure = 1; then - echo "$0: failure in testing framework" 1>&2 - (exit 1); exit 1 -fi - -fail=0 - -# ====================================== -# This must fail -- because x/b cannot be unlinked. -cp --preserve=link --parents a x/b c dst 2> /dev/null && fail=1 - -# Source files must remain. -test -f a || fail=1 -test -f x/b || fail=1 -test -f c || fail=1 -cd dst - -# Three destination files must exist. -test -f a || fail=1 -test -f x/b || fail=1 -test -f c || fail=1 - -# The i-node numbers of a and c must be the same. -ia=`ls -i a` || fail=1; set x $ia; ia=$2 -ic=`ls -i c` || fail=1; set x $ic; ic=$2 -test "$ia" = "$ic" || fail=1 - -# The i-node number of x/b must be different. -ib=`ls -i x/b` || fail=1; set x $ib; ib=$2 -test "$ia" = "$ib" && fail=1 - -(exit $fail); exit $fail |