1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-18 17:56:54 +02:00

Adjust chgrp, chmod, chown, cp tests to use test-lib.sh.

* tests/check.mk: Also define abs_top_builddir.
This commit is contained in:
Jim Meyering
2007-09-06 17:34:49 +02:00
parent c840cd4334
commit df0beae1eb
61 changed files with 255 additions and 985 deletions

View File

@@ -13,6 +13,7 @@ FIXME_hook_this_to_make_distcheck:
# Append this, because automake does the same.
TESTS_ENVIRONMENT += \
abs_top_srcdir=$(abs_top_srcdir) \
abs_top_builddir=$(abs_top_builddir) \
srcdir=$(srcdir)
TEST_LOGS = $(TESTS:=.log)

View File

@@ -12,3 +12,5 @@ TESTS_ENVIRONMENT = \
host_triplet=$(host_triplet) \
CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst \
PATH="$(VG_PATH_PREFIX)`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
include $(top_srcdir)/tests/check.mk

View File

@@ -21,23 +21,9 @@ if test "$VERBOSE" = yes; then
chgrp --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
. $srcdir/../group-names
pwd=`pwd`
tmp=basic.$$
trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
framework_failure=0
mkdir $tmp || framework_failure=1
cd $tmp || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework' 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Ensure that chgrp -R does not dereference symlinks.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -22,23 +22,12 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../group-names
. $srcdir/../test-lib.sh
set _ $groups; shift
g2=$2
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 d && touch f && ln -s ../f d/s || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
mkdir d && touch f && ln -s ../f d/s || framework_failure
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# see if chgrp can change the group of a symlink
# Copyright (C) 2000, 2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2004-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
@@ -22,20 +22,7 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../group-names
pwd=`pwd`
tmp=slink.$$
trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
framework_failure=0
mkdir $tmp || framework_failure=1
cd $tmp || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework' 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
set _ $groups; shift
g1=$1

View File

@@ -22,29 +22,18 @@ if test "$VERBOSE" = yes; then
chgrp --version
fi
. $srcdir/../lang-default
. $srcdir/../group-names
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
. $srcdir/../test-lib.sh
set _ $groups; shift
g1=$1
g2=$2
. $srcdir/../lang-default
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 d/no-x/y || framework_failure=1
chmod u=rw d/no-x || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
mkdir -p d/no-x/y || framework_failure
chmod u=rw d/no-x || framework_failure
fail=0
@@ -67,7 +56,6 @@ cat <<EOF > exp
$prog: \`d/no-x': Permission denied
EOF
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
(exit $fail); exit $fail

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Test POSIX-mandated -H option.
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2003-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
@@ -22,29 +22,17 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../group-names
. $srcdir/../test-lib.sh
set _ $groups; shift
g1=$1
g2=$2
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 1 2 3 || framework_failure=1
touch 1/1F 2/2F 3/3F || framework_failure=1
ln -s 1 1s || framework_failure=1
ln -s ../3 2/2s || framework_failure=1
chgrp -R $g1 1 2 3 || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
mkdir 1 2 3 || framework_failure
touch 1/1F 2/2F 3/3F || framework_failure
ln -s 1 1s || framework_failure
ln -s ../3 2/2s || framework_failure
chgrp -R $g1 1 2 3 || framework_failure
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# ad-hoc tests of chgrp with -R and -H or -L and symlinks
# Copyright (C) 2000, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2003-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
@@ -22,20 +22,7 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../group-names
pwd=`pwd`
tmp=recurse.$$
trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
framework_failure=0
mkdir $tmp || framework_failure=1
cd $tmp || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework' 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
set _ $groups; shift
g1=$1

View File

@@ -15,3 +15,5 @@ EXTRA_DIST = $(TESTS)
TESTS_ENVIRONMENT = \
CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst \
PATH="$(VG_PATH_PREFIX)`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
include $(top_srcdir)/tests/check.mk

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Verify that chmod's --changes (-c) option works.
# Copyright (C) 2000, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2004, 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
@@ -22,33 +22,14 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../lang-default
pwd=`pwd`
tmp=c-option.$$
trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
framework_failure=0
# Record absolute path of srcdir.
cd $srcdir || framework_failure=1
abs_srcdir=`pwd`
cd "$pwd" || framework_failure=1
mkdir $tmp || framework_failure=1
cd $tmp || framework_failure=1
. $srcdir/../test-lib.sh
umask 0
file=f
touch $file || framework_failure=1
chmod 444 $file || framework_failure=1
touch $file || framework_failure
chmod 444 $file || framework_failure
if test $framework_failure = 1; then
echo 'failure in testing framework'
(exit 1); exit 1
fi
. "$abs_srcdir/../setgid-check"
. "$abs_top_srcdir/tests/setgid-check"
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Test "chmod =x" and the like.
# Copyright (C) 1999, 2000, 2002, 2004, 2005, 2006 Free Software Foundation,
# Copyright (C) 1999, 2000, 2002, 2004-2007 Free Software Foundation,
# Inc.
# This program is free software: you can redistribute it and/or modify
@@ -22,22 +22,10 @@ if test "$VERBOSE" = yes; then
chmod --version
fi
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
. $srcdir/../test-lib.sh
file=f
touch $file || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
(exit 1); exit 1
fi
touch $file || framework_failure
fail=0
umask 005

View File

@@ -3,8 +3,7 @@
# Before fileutils-4.1.2, some of them didn't.
# Also, before coreutils-5.3.1, =[ugo] sometimes didn't work.
# Copyright (C) 2001, 2002, 2004, 2005, 2006 Free Software Foundation,
# Inc.
# Copyright (C) 2001, 2002, 2004-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
@@ -24,20 +23,9 @@ if test "$VERBOSE" = yes; then
chmod --version
fi
pwd=`pwd`
tmp=equals.$$
trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
. $srcdir/../test-lib.sh
framework_failure=0
mkdir $tmp || framework_failure=1
cd $tmp || framework_failure=1
touch f || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
touch f || framework_failure
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Test for the bug fixed on 2006-09-20.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -21,22 +21,10 @@ if test "$VERBOSE" = yes; then
chmod --version
fi
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
. $srcdir/../test-lib.sh
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
mkdir -p d/e
chmod 0 d/e d
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
mkdir -p d/e || framework_failure
chmod 0 d/e d || framework_failure
fail=0

View File

@@ -24,22 +24,10 @@ fi
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
. $srcdir/../test-lib.sh
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 d/no-x/y || framework_failure=1
chmod u=rw d/no-x || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
mkdir -p d/no-x/y || framework_failure
chmod u=rw d/no-x || framework_failure
fail=0
@@ -62,8 +50,7 @@ cat <<EOF > exp
$prog: \`d/no-x': Permission denied
EOF
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
mkdir -p a/b
cd a

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# ensure that chmod diagnoses a certain type of invalid mode string
# Copyright (C) 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2005-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
@@ -21,19 +21,7 @@ if test "$VERBOSE" = yes; then
chmod --version
fi
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
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
fail=0

View File

@@ -2,7 +2,7 @@
# Make sure GNU chmod works the same way as those of Solaris, HPUX, AIX
# wrt directories with the setgid bit set.
# Copyright (C) 2001, 2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2001, 2004-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
@@ -22,23 +22,13 @@ if test "$VERBOSE" = yes; then
chmod --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
. $srcdir/../test-lib.sh
pwd=`pwd`
tmp=setgid.$$
trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
framework_failure=0
mkdir $tmp || framework_failure=1
cd $tmp || framework_failure=1
test=../../../src/test
test=$abs_top_builddir/src/test
umask 0
mkdir d || framework_failure=1
mkdir d || framework_failure
chmod g+s d 2> /dev/null && $test -g d ||
{
@@ -50,14 +40,9 @@ chmod g+s d 2> /dev/null && $test -g d ||
id_g=`id -g` &&
test -n "$id_g" &&
chgrp "$id_g" d &&
chmod g+s d || framework_failure=1
chmod g+s d || framework_failure
}
if test $framework_failure = 1; then
echo 'failure in testing framework' 1>&2
(exit 1); exit 1
fi
# "chmod g+s d" does nothing on some NFS file systems.
$test -g d || {
echo 1>&2 "$0: cannot create setgid directories," \

View File

@@ -21,21 +21,9 @@ if test "$VERBOSE" = yes; then
chmod --version
fi
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
. $srcdir/../test-lib.sh
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
ln -s non-existent dangle || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
ln -s non-existent dangle || framework_failure
fail=0
@@ -43,7 +31,6 @@ fail=0
chmod 644 dangle 2> out && fail=1
echo "chmod: cannot operate on dangling symlink \`dangle'" > exp
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
(exit $fail); exit $fail

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Test that chmod -x file reports an error if the result is executable.
# Copyright (C) 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2005, 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
@@ -22,30 +22,11 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../lang-default
pwd=`pwd`
tmp=minus.$$
trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
framework_failure=0
mkdir $tmp || framework_failure=1
cd $tmp || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
fail=0
touch file
chmod 755 file
(umask 77 && chmod -x file) 2>/dev/null && fail=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
fail=1
fi
(exit $fail); exit $fail

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Verify that chmod works correctly with odd option combinations.
# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2004-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
@@ -22,20 +22,7 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../lang-default
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
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
fail=0
@@ -85,26 +72,21 @@ for case in $cases; do
case $files in
'')
touch -- $all_files || framework_failure=1
touch -- $all_files || framework_failure
chmod $args 2>/dev/null && fail=1
;;
?*)
touch -- $files || framework_failure=1
touch -- $files || framework_failure
chmod $args || fail=1
for file in $files; do
# Test for misparsing args by creating all $files but $file.
# chmod has a bug if it succeeds even though $file is absent.
rm -f -- $all_files && touch -- $files && rm -- $file \
|| framework_failure=1
|| framework_failure
chmod $args 2>/dev/null && fail=1
done
;;
esac
done
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
fail=1
fi
(exit $fail); exit $fail

View File

@@ -8,3 +8,5 @@ EXTRA_DIST = $(TESTS)
TESTS_ENVIRONMENT = \
CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst \
PATH="$(VG_PATH_PREFIX)`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
include $(top_srcdir)/tests/check.mk

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# make sure chown --from=... works
# Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2001, 2004-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
@@ -21,24 +21,11 @@ if test "$VERBOSE" = yes; then
chgrp --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-root . $srcdir/../priv-check
. $srcdir/../test-lib.sh
pwd=`pwd`
tmp=basic.$$
trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
framework_failure=0
mkdir $tmp || framework_failure=1
cd $tmp || framework_failure=1
touch f || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework' 1>&2
(exit 1); exit 1
fi
touch f || framework_failure
fail=0
chown -R --preserve-root 0:1 f

View File

@@ -2,7 +2,7 @@
# For coreutils-5.2.1 and earlier, chown --dereference would skip
# symlinks having owner/group matching the specified owner/group.
# Copyright (C) 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2004, 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
@@ -22,23 +22,10 @@ if test "$VERBOSE" = yes; then
chown --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
. $srcdir/../test-lib.sh
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
ln -s no-such dangle || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
ln -s no-such dangle || framework_failure
fail=0
@@ -52,7 +39,6 @@ cat <<\EOF > exp || fail=1
chown: cannot dereference `dangle'
EOF
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
(exit $fail); exit $fail

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Verify that --preserve-root works.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -21,25 +21,12 @@ if test "$VERBOSE" = yes; then
chown --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
. $srcdir/../test-lib.sh
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 d && ln -s / d/slink-to-root
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
fail=0
# Even if --preserve-root were to malfunction, allowing the chown or
@@ -80,7 +67,6 @@ chgrp: it is dangerous to operate recursively on `d/slink-to-root' (same as `/')
chgrp: use --no-preserve-root to override this failsafe
EOF
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
(exit $fail); exit $fail

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Make sure "chown USER:GROUP FILE" works, and similar tests with separators.
# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2004-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
@@ -21,32 +21,19 @@ if test "$VERBOSE" = yes; then
chown --version
fi
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 'status=$?; (exit $status); exit $status' 1 2 13 15
. $srcdir/../test-lib.sh
framework_failure=0
id_u=`id -u` || framework_failure
test -n "$id_u" || framework_failure
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
id_un=`id -un` || framework_failure
test -n "$id_un" || framework_failure
id_u=`id -u` || framework_failure=1
test -n "$id_u" || framework_failure=1
id_g=`id -g` || framework_failure
test -n "$id_g" || framework_failure
id_un=`id -un` || framework_failure=1
test -n "$id_un" || framework_failure=1
id_g=`id -g` || framework_failure=1
test -n "$id_g" || framework_failure=1
id_gn=`id -gn` || framework_failure=1
test -n "$id_gn" || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 77); exit 77
fi
id_gn=`id -gn` || framework_failure
test -n "$id_gn" || framework_failure
fail=0

View File

@@ -34,7 +34,8 @@ TESTS = \
EXTRA_DIST = $(TESTS) trailing-slash
TESTS_ENVIRONMENT = \
MAKE=$(MAKE) \
abs_top_builddir=$(abs_top_builddir) \
CONFIG_HEADER=$(CONFIG_HEADER) \
CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst \
PATH="$(VG_PATH_PREFIX)`pwd`/../../src$(PATH_SEPARATOR)$$PATH"
include $(top_srcdir)/tests/check.mk

View File

@@ -2,7 +2,7 @@
# copy files/directories across file system boundaries
# and make sure acls are preserved appropriately
# Copyright (C) 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2005-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
@@ -35,22 +35,10 @@ if test "$VERBOSE" = yes; then
setfacl --version
fi
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
. $srcdir/../test-lib.sh
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
mkdir -p a b || framework_failure=1
touch a/file || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
(exit 1); exit 1
fi
mkdir -p a b || framework_failure
touch a/file || framework_failure
skip=no
# Ensure that setfacl and getfacl work on this file system.
@@ -68,21 +56,16 @@ test $skip = yes &&
# copy a file without preserving permissions
cp a/file b/ || fail=1
acl2=`cd b && getfacl file` || framework_failure=1
acl2=`cd b && getfacl file` || framework_failure
test "$acl1" = "$acl2" || fail=1
rm a/file || framework_failure=1
rm a/file || framework_failure
# copy a file, preserving permissions
touch a/file || framework_failure=1
setfacl -m user:bin:rw a/file || framework_failure=1
acl1=`cd a && getfacl file` || framework_failure=1
touch a/file || framework_failure
setfacl -m user:bin:rw a/file || framework_failure
acl1=`cd a && getfacl file` || framework_failure
cp -p a/file b/ || fail=1
acl2=`cd b && getfacl file` || framework_failure=1
acl2=`cd b && getfacl file` || framework_failure
test "$acl1" = "$acl2" || fail=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
(exit 1); exit 1
fi
exit $fail

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Test cp backup.
# Copyright (C) 1997, 1999, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 1997, 1999, 2002, 2004, 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
@@ -21,19 +21,7 @@ if test "$VERBOSE" = yes; then
cp --version
fi
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
suffix=.b
file=b1.$$
@@ -51,6 +39,6 @@ cp --force --backup=simple --suffix=$suffix $file $file \
test -f $file || fail=1
test -f $file_backup || fail=1
cmp $file $file_backup > /dev/null || fail=1
compare $file $file_backup > /dev/null || fail=1
(exit $fail); exit $fail

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Ensure that cp -b doesn't back up directories.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -21,22 +21,9 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
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 x y || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
mkdir x y || framework_failure
fail=0

View File

@@ -1,8 +1,7 @@
#!/bin/sh
# Test cp backup to source file.
# Copyright (C) 1998, 1999, 2000, 2002, 2004, 2006 Free Software Foundation,
# Inc.
# Copyright (C) 1998-2000, 2002, 2004, 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
@@ -23,24 +22,10 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../lang-default
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
echo a > a || framework_failure=1
echo a-tilde > a~ || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
echo a > a || framework_failure
echo a-tilde > a~ || framework_failure
# This cp command should exit nonzero.
cp --b=simple a~ a > out 2>&1 && fail=1
@@ -51,6 +36,6 @@ cat > exp <<\EOF
XXX: backing up `a' would destroy source; `a~' not copied
EOF
cmp out2 exp || fail=1
compare out2 exp || fail=1
(exit $fail); exit $fail

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# test cp's -H and -L options
# Copyright (C) 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2002, 2004, 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
@@ -21,26 +21,12 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && rm -rf $t0 && exit $status' 0
trap 'exit $?' 1 2 13 15
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
mkdir src-dir dest-dir || framework_failure=1
echo f > f || framework_failure=1
ln -s f slink || framework_failure=1
ln -s no-such-file src-dir/slink || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
mkdir src-dir dest-dir || framework_failure
echo f > f || framework_failure
ln -s f slink || framework_failure
ln -s no-such-file src-dir/slink || framework_failure
fail=0

View File

@@ -22,36 +22,25 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
. $srcdir/../selinux
PRIV_CHECK_ARG=require-root . $srcdir/../priv-check
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
trap 'status=$?; cd "$pwd"; umount $tmp/mnt; 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
cwd=`pwd`
cleanup_() { cd /; umount "$cwd/mnt"; }
# Create a file system, then mount it with the context=... option.
dd if=/dev/zero of=blob bs=8192 count=200 > /dev/null 2>&1 \
|| framework_failure=1
mkdir mnt || framework_failure=1
mkfs -t ext2 -F blob > /dev/null 2>&1 || framework_failure=1
|| framework_failure
mkdir mnt || framework_failure
mkfs -t ext2 -F blob > /dev/null 2>&1 || framework_failure
mount -oloop,context=system_u:object_r:removable_t blob mnt \
|| framework_failure=1
cd mnt || framework_failure=1
|| framework_failure
cd mnt || framework_failure
echo > f || framework_failure=1
echo > g || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
echo > f || framework_failure
echo > g || framework_failure
fail=0
@@ -86,7 +75,6 @@ cat <<\EOF > exp || fail=1
cp: failed to set the security context of
EOF
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
(exit $fail); exit $fail

View File

@@ -2,7 +2,7 @@
# cp -RL dir1 dir2' must handle the case in which each of dir1 and dir2
# contain a symlink pointing to some third directory.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -22,22 +22,11 @@ if test "$VERBOSE" = yes; then
cp --version
fi
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
. $srcdir/../test-lib.sh
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
mkdir a b c d || framework_failure=1
ln -s ../c a || framework_failure=1
ln -s ../c b || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
mkdir a b c d || framework_failure
ln -s ../c a || framework_failure
ln -s ../c b || framework_failure
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Test whether cp -i prompts in the right place.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -21,25 +21,11 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
. $srcdir/../test-lib.sh
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 a b/a/c || framework_failure=1
touch a/c || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
mkdir -p a b/a/c || framework_failure
touch a/c || framework_failure
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Test basic --backup functionality for both cp and mv.
# Copyright (C) 1999, 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 1999, 2000, 2002, 2004, 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
@@ -24,7 +24,7 @@ fi
# Ensure that ls sorts the same way for everyone.
. $srcdir/../lang-default
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
umask 022
@@ -32,20 +32,6 @@ umask 022
# Use `1>&2' rather than `1<&-' since the latter appears not to work
# with /bin/sh from powerpc-ibm-aix4.2.0.0.
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
trap 'status=$?; cd "$pwd" && exec 1>&2; 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
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
actual=actual
expected=expected
@@ -107,9 +93,6 @@ EOF
sed 's/: x/:/' $expected-tmp |cat $expected-tmp - > $expected
cmp $expected $actual || fail=1
# Uncomment this if you see a failure and want to try to diagnose it.
test $fail = 1 && diff -c $expected $actual 1>&2
compare $expected $actual || fail=1
(exit $fail); exit $fail

View File

@@ -2,7 +2,7 @@
# cp -R --parents dir-specified-with-trailing-slash/ other-dir
# would get a failed assertion.
# Copyright (C) 2000, 2002, 2004, 2005, 2006, 2007 Free Software
# Copyright (C) 2000, 2002, 2004, 2005, 2006-2007 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
@@ -23,37 +23,16 @@ if test "$VERBOSE" = yes; then
mv --version
fi
umask 022
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && exec 1>&2; rm -rf $t0 && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
framework_failure=0
# Record absolute path of srcdir and cd back to current dir.
cd $srcdir || framework_failure=1
abs_srcdir=`pwd`
cd "$pwd" || framework_failure=1
. $srcdir/../envvar-check
. $srcdir/../umask-check
. $srcdir/../test-lib.sh
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
# Run the setgid check from the just-created directory.
. "$abs_top_srcdir/tests/setgid-check"
. "$abs_srcdir/../setgid-check"
mkdir foo bar || framework_failure=1
mkdir -p a/b/c d e g || framework_failure=1
ln -s d/a sym || framework_failure=1
touch f || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
mkdir foo bar || framework_failure
mkdir -p a/b/c d e g || framework_failure
ln -s d/a sym || framework_failure
touch f || framework_failure
fail=0

View File

@@ -2,7 +2,7 @@
# Demonstrate bug when using -d with an existing destination file
# that is a symlink.
# Copyright (C) 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2002, 2004, 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
@@ -22,24 +22,11 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
touch f slink-target || framework_failure=1
ln -s slink-target slink || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework' 1>&2
(exit 1); exit 1
fi
touch f slink-target || framework_failure
ln -s slink-target slink || framework_failure
fail=0
cp -d f slink || fail=1

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# verify that cp's --remove-destination option works with -R
# Copyright (C) 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2002, 2004, 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
@@ -21,23 +21,11 @@ if test "$VERBOSE" = yes; then
cp --version
fi
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && rm -rf $t0 && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
. $srcdir/../test-lib.sh
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
mkdir d e || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
mkdir d e || framework_failure
fail=0
# Do it once with no destination...
cp -R --remove-destination d e || fail=1

View File

@@ -2,7 +2,7 @@
# Make sure that cp -R DIR1 DIR2 does the right thing
# when DIR1 is written with a trailing slash.
# Copyright (C) 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2002, 2004, 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
@@ -22,22 +22,10 @@ if test "$VERBOSE" = yes; then
cp --version
fi
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && rm -rf $t0 || exit $?; exit $status' 0
trap 'exit $?' 1 2 13 15
. $srcdir/../test-lib.sh
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
mkdir dir1 dir2 || framework_failure=1
touch dir1/file || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
mkdir dir1 dir2 || framework_failure
touch dir1/file || framework_failure
fail=0
cp -R dir1/ dir2 || fail=1

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# A directory may not replace an existing file.
# Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2001, 2002, 2004, 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
@@ -21,24 +21,10 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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 dir || framework_failure=1
touch file || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework' 1>&2
(exit 1); exit 1
fi
mkdir dir || framework_failure
touch file || framework_failure
fail=0

View File

@@ -1,6 +1,6 @@
#!/bin/sh
# Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006 Free Software
# Copyright (C) 2000, 2002-2007 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
@@ -23,25 +23,12 @@ fi
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
. $srcdir/../test-lib.sh
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 D D/D || framework_failure=1
touch D/a || framework_failure=1
chmod 0 D/a || framework_failure=1
chmod u=rx,go=,-st D || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
mkdir D D/D || framework_failure
touch D/a || framework_failure
chmod 0 D/a || framework_failure
chmod u=rx,go=,-st D || framework_failure
fail=0
@@ -66,11 +53,11 @@ cp F symlink 2> out && fail=1
# ...: The file access permissions do not allow the specified action.
# to the expected one:
sed 's/: The file access permissions.*/: Permission denied/'<out>o1;mv o1 out
cmp out exp || { (diff -c out exp) 2> /dev/null; fail=1; }
compare out exp || fail=1
cp --target-directory=symlink F 2> out && fail=1
sed 's/: The file access permissions.*/: Permission denied/'<out>o1;mv o1 out
cmp out exp || { (diff -c out exp) 2> /dev/null; fail=1; }
compare out exp || fail=1
chmod 700 D

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Make sure cp -p isn't too generous with file permissions.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -21,14 +21,7 @@ if test "$VERBOSE" = yes; then
cp --version
fi
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
. $srcdir/../test-lib.sh
umask 022
mkfifo fifo || {

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Confirm that copying a directory into itself gets a proper diagnostic.
# Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2001, 2002, 2004, 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
@@ -26,24 +26,10 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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 dir || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework' 1>&2
(exit 1); exit 1
fi
mkdir dir || framework_failure
fail=0
@@ -55,7 +41,6 @@ cp: cannot copy a directory, `dir', into itself, `dir/dir'
EOF
#'
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
(exit $fail); exit $fail

View File

@@ -2,7 +2,7 @@
# Make sure cp --link -f works when the target exists.
# This failed for 4.0z (due to a bug introduced in that test release).
# Copyright (C) 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2002, 2004, 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
@@ -22,23 +22,11 @@ if test "$VERBOSE" = yes; then
cp --version
fi
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && rm -rf $t0 && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
. $srcdir/../test-lib.sh
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
touch src || framework_failure=1
touch dest || framework_failure=1
touch dest2 || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
touch src || framework_failure
touch dest || framework_failure
touch dest2 || framework_failure
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Ensure that cp --link --no-dereference works properly
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -21,21 +21,9 @@ if test "$VERBOSE" = yes; then
cp --version
fi
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
. $srcdir/../test-lib.sh
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
ln -s no-such-file dangling-slink || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
ln -s no-such-file dangling-slink || framework_failure
fail=0

View File

@@ -2,7 +2,7 @@
# ensure that `cp -d' preserves hard-links between command line arguments
# ensure that --preserve=links works with -RH and -RL
# Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2001, 2002, 2004, 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
@@ -22,28 +22,15 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
touch a || framework_failure=1
ln a b || framework_failure=1
mkdir c || framework_failure=1
cp -d a b c || framework_failure=1
test -f c/a || framework_failure=1
test -f c/b || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework' 1>&2
(exit 1); exit 1
fi
touch a || framework_failure
ln a b || framework_failure
mkdir c || framework_failure
cp -d a b c || framework_failure
test -f c/a || framework_failure
test -f c/b || framework_failure
fail=0

View File

@@ -1,8 +1,7 @@
#!/bin/sh
# FIXME: This test requires ln -s.
# cp from 3.16 fails this test
# Copyright (C) 1997, 1999, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 1997, 1999, 2002, 2004, 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
@@ -22,19 +21,7 @@ if test "$VERBOSE" = yes; then
cp --version
fi
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
mkdir a b
msg=bar

View File

@@ -1,8 +1,7 @@
#!/bin/sh
# FIXME: This test requires ln -s.
# cp from 3.16 fails this test
# Copyright (C) 1997, 1999, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 1997, 1999, 2002, 2004, 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
@@ -22,19 +21,7 @@ if test "$VERBOSE" = yes; then
cp --version
fi
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
mkdir b
msg=bar

View File

@@ -1,8 +1,7 @@
#!/bin/sh
# FIXME: This test requires ln -s.
# cp from 3.16 fails this test
# Copyright (C) 1997, 1999, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 1997, 1999, 2002, 2004, 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
@@ -22,19 +21,7 @@ if test "$VERBOSE" = yes; then
cp --version
fi
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
. $srcdir/../test-lib.sh
msg=bar
echo $msg > a

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Make sure cp -pR --parents isn't too generous with parent permissions.
# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -21,17 +21,10 @@ if test "$VERBOSE" = yes; then
cp --version
fi
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
. $srcdir/../test-lib.sh
umask 002
mkdir mode ownership d || framework_failure=1
mkdir mode ownership d || framework_failure
chmod g+s d 2>/dev/null # The cp test is valid either way.
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Make sure the permission-preserving code in copy.c (mv, cp, install) works.
# Copyright (C) 2000, 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2002, 2004-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
@@ -24,24 +24,10 @@ if test "$VERBOSE" = yes; then
mv --version
fi
. $srcdir/../envvar-check
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
. $srcdir/../test-lib.sh
umask 037
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
fail=0
# Now, try it with `mv', with combinations of --force, no-f and

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# ensure that cp's --preserve=X,Y option is parsed properly
# Copyright (C) 2002, 2006 Free Software Foundation, Inc.
# Copyright (C) 2002, 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
@@ -21,20 +21,9 @@ if test "$VERBOSE" = yes; then
cp --version
fi
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
. $srcdir/../test-lib.sh
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
touch f || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
touch f || framework_failure
fail=0

View File

@@ -21,22 +21,9 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
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
touch empty || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
touch empty || framework_failure
f=/proc/cpuinfo
test -r $f || f=empty
@@ -53,7 +40,6 @@ cp $f exp || fail=1
test -s out && { rm -f out; echo nonempty > out; }
test -s exp && { rm -f exp; echo nonempty > exp; }
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
(exit $fail); exit $fail

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# cp -r should not create symlinks. Fixed in fileutils-4.1.5.
# Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2001, 2002, 2004, 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
@@ -25,24 +25,11 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
echo abc > foo || framework_failure=1
ln -s foo slink || framework_failure=1
ln -s no-such-file no-file || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
echo abc > foo || framework_failure
ln -s foo slink || framework_failure
ln -s no-such-file no-file || framework_failure
fail=0

View File

@@ -2,7 +2,7 @@
# Test some of cp's options and how cp handles situations in
# which a naive implementation might overwrite the source file.
# Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2006 Free Software
# Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2006-2007 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
@@ -24,7 +24,7 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../lang-default
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
# Unset CDPATH. Otherwise, output from the `cd dir' command
# can make this test fail.
@@ -32,20 +32,6 @@ fi
VERSION_CONTROL=numbered; export VERSION_CONTROL
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && exec 1>&2; rm -rf $t0 && exit $status' 0
trap 'exit $?' 1 2 13 15
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
actual=actual-$$
expected=expected-$$
@@ -210,8 +196,6 @@ EOF
fail=0;
# Some folks don't have diff.
cmp $expected $actual \
|| { diff -c $expected $actual 1>&2; fail=1; }
compare $expected $actual || fail=1
(exit $fail); exit $fail

View File

@@ -2,7 +2,7 @@
# `test cp --update A B' where A and B are both symlinks that point
# to the same file
# Copyright (C) 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2002, 2004, 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
@@ -22,30 +22,14 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
# Make sure we get English translations.
. $srcdir/../lang-default
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && rm -rf $t0 && exit $status' 0
trap 'exit $?' 1 2 13 15
framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp
touch file || framework_failure=1
ln -s file a || framework_failure=1
ln -s file b || framework_failure=1
ln -s no-such-file c || framework_failure=1
ln -s no-such-file d || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
touch file || framework_failure
ln -s file a || framework_failure
ln -s file b || framework_failure
ln -s no-such-file c || framework_failure
ln -s no-such-file d || framework_failure
fail=0
cp --update --no-dereference a b || fail=1

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Test cp --sparse=always
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -21,29 +21,15 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../sparse-file
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
. $srcdir/../test-lib.sh
# Create a sparse file.
# It has to be at least 128K in order to be sparse on some systems.
# Make its size one larger than 128K, in order to tickle the
# bug in coreutils-6.0.
size=`expr 128 \* 1024 + 1`
dd bs=1 seek=$size of=sparse < /dev/null 2> /dev/null || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
dd bs=1 seek=$size of=sparse < /dev/null 2> /dev/null || framework_failure
fail=0

View File

@@ -2,7 +2,7 @@
# make sure `cp -p' preserves special bits
# This works only when run as root.
# Copyright (C) 2000, 2001, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000-2002, 2004, 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
@@ -26,27 +26,14 @@ if test "$VERBOSE" = yes; then
fi
PRIV_CHECK_ARG=require-root . $srcdir/../priv-check
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp;tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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
touch a b c || framework_failure=1
chmod u+sx,go= a || framework_failure=1
chmod u=rwx,g=sx,o= b || framework_failure=1
chmod a=r,ug+sx c || framework_failure=1
chown $NON_ROOT_USERNAME . || framework_failure=1
chmod u=rwx,g=rx,o=rx . || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
touch a b c || framework_failure
chmod u+sx,go= a || framework_failure
chmod u=rwx,g=sx,o= b || framework_failure
chmod a=r,ug+sx c || framework_failure
chown $NON_ROOT_USERNAME . || framework_failure
chmod u=rwx,g=rx,o=rx . || framework_failure
fail=0

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# Ensure that "mkdir x y; cd y; cp -ab ../x/. ." is a successful, silent, no-op.
# Copyright (C) 2006 Free Software Foundation, Inc.
# Copyright (C) 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
@@ -21,23 +21,9 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
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 x y || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
mkdir x y || framework_failure
fail=0
@@ -46,7 +32,6 @@ cp --verbose -ab ../x/. . > out 2>&1 || fail=1
cat <<\EOF > exp || fail=1
EOF
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
(exit $fail); exit $fail

View File

@@ -2,7 +2,7 @@
# Make sure that cp -dR dereferences a symlink arg if its name is
# written with a trailing slash.
# Copyright (C) 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
# Copyright (C) 2000, 2002, 2004, 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
@@ -22,25 +22,11 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../lang-default
. $srcdir/../test-lib.sh
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
trap 'status=$?; cd "$pwd" && 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 dir || framework_failure=1
ln -s dir symlink || framework_failure=1
if test $framework_failure = 1; then
echo 'failure in testing framework'
exit 1
fi
mkdir dir || framework_failure
ln -s dir symlink || framework_failure
fail=0
cp -dR symlink/ s || fail=1

View File

@@ -21,32 +21,17 @@ if test "$VERBOSE" = yes; then
cp --version
fi
. $srcdir/../envvar-check
. $srcdir/../test-lib.sh
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
ln -s no-such dangle || framework_failure=1
echo hi > f || framework_failure=1
echo hi > exp || framework_failure=1
if test $framework_failure = 1; then
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
fi
ln -s no-such dangle || framework_failure
echo hi > f || framework_failure
echo hi > exp || framework_failure
fail=0
cp f dangle > out 2>&1 || fail=1
cat no-such >> out || fail=1
cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null
compare out exp || fail=1
(exit $fail); exit $fail

View File

@@ -8,6 +8,12 @@ if test $? != 11; then
(exit 77); exit 77
fi
framework_failure()
{
echo "$0: failure in testing framework" 1>&2
(exit 1); exit 1
}
test_dir_=$(pwd)
this_test_() { echo "./$0" | sed 's,.*/,,'; }