mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-03-07 05:23:02 +02:00
with longer delay, in case NFS clock skew was the cause of the failure. Reported by Kaveh Ghazi.
67 lines
1.6 KiB
Bash
Executable File
67 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
# Make sure touch can set the mtime on an empty file.
|
|
# Volker Borchert reported that touch 3.16r (and presumably all before that)
|
|
# fails to work on SunOS 4.1.3 with `most of the recommended patches' when
|
|
# the empty file is on an NFS-mounted 4.2 volume.
|
|
|
|
: ${RM=rm}
|
|
: ${TOUCH=touch}
|
|
|
|
if test "$VERBOSE" = yes; then
|
|
set -x
|
|
$TOUCH --version
|
|
fi
|
|
|
|
DEFAULT_SLEEP_SECONDS=2
|
|
SLEEP_SECONDS=${SLEEP_SECONDS=$DEFAULT_SLEEP_SECONDS}
|
|
|
|
fail=0
|
|
|
|
# FIXME: find writable directories on other partitions
|
|
# and run the test in those directories, too.
|
|
|
|
: ${TOUCH_DIR_LIST=.}
|
|
|
|
framework_failure=0
|
|
|
|
for d in $TOUCH_DIR_LIST; do
|
|
$RM -rf $d/a $d/b
|
|
> $d/a || framework_failure=1
|
|
test -f $d/a || framework_failure=1
|
|
> $d/b || framework_failure=1
|
|
test -f $d/b || framework_failure=1
|
|
done
|
|
|
|
if test $framework_failure = 1; then
|
|
echo 'failure in testing framework'
|
|
exit 1
|
|
fi
|
|
|
|
sleep $SLEEP_SECONDS
|
|
for d in $TOUCH_DIR_LIST; do
|
|
$TOUCH $d/a || fail=1
|
|
set x `$LS -t $d/a $d/b`
|
|
test "$*" = "x $d/a $d/b" || fail=1
|
|
done
|
|
|
|
sleep $SLEEP_SECONDS
|
|
for d in $TOUCH_DIR_LIST; do
|
|
$TOUCH $d/b
|
|
set x `$LS -t $d/a $d/b`
|
|
test "$*" = "x $d/b $d/a" || fail=1
|
|
|
|
$RM -rf $d/a $d/b
|
|
done
|
|
|
|
if test $fail != 0; then
|
|
cat 1>&2 <<EOF
|
|
*** This test has just failed. That can happen when the test is run in an
|
|
*** NFS-mounted directory on a system whose clock is not well synchronized
|
|
*** with that of the NFS server. If you think that is the reason, set the
|
|
*** environment variable SLEEP_SECONDS to some number of seconds larger than
|
|
*** the default of $DEFAULT_SLEEP_SECONDS and rerun the test.
|
|
EOF
|
|
fi
|
|
|
|
exit $fail
|