summaryrefslogtreecommitdiffstats
path: root/Test/C02cond.ztst
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2015-03-20 15:00:02 +0000
committerPeter Stephenson <pws@zsh.org>2015-03-20 15:00:02 +0000
commita74fe69d0550a37625f73f3008f8f468207536f4 (patch)
treebb897f88d44c4c0b8526c1ce70b74032e2cdf8e7 /Test/C02cond.ztst
parent34752: another fix for history expansion in cmd subst (diff)
downloadzsh-a74fe69d0550a37625f73f3008f8f468207536f4.tar
zsh-a74fe69d0550a37625f73f3008f8f468207536f4.tar.gz
zsh-a74fe69d0550a37625f73f3008f8f468207536f4.tar.bz2
zsh-a74fe69d0550a37625f73f3008f8f468207536f4.tar.lz
zsh-a74fe69d0550a37625f73f3008f8f468207536f4.tar.xz
zsh-a74fe69d0550a37625f73f3008f8f468207536f4.tar.zst
zsh-a74fe69d0550a37625f73f3008f8f468207536f4.zip
34753: work around NFS problem in tests.
Use tmp directory if it helps us check file time comparisons. If it doesn't we're no worse off than we were.
Diffstat (limited to 'Test/C02cond.ztst')
-rw-r--r--Test/C02cond.ztst38
1 files changed, 29 insertions, 9 deletions
diff --git a/Test/C02cond.ztst b/Test/C02cond.ztst
index 69001476c..6581b9d6b 100644
--- a/Test/C02cond.ztst
+++ b/Test/C02cond.ztst
@@ -8,11 +8,28 @@
cd cond.tmp
- touch unmodified
+ typeset -gi isnfs
+ [[ "$(find . -prune -fstype nfs 2>/dev/null)" == "." ]] && isnfs=1
+ if (( isnfs )) &&
+ (cd -q ${TMPPREFIX:h} >/dev/null 2>&1 &&
+ [[ "$(find . -prune -fstype nfs 2>/dev/null)" != "." ]]); then
+ filetmpprefix=${TMPPREFIX}-$$-
+ isnfs=0
+ else
+ filetmpprefix=
+ fi
+ newnewnew=${filetmpprefix}newnewnew
+ unmodified=${filetmpprefix}unmodified
+ zlnfs=${filetmpprefix}zlnfs
+
+ touch $unmodified
touch zerolength
chgrp $EGID zerolength
+ touch $zlnfs
+ chgrp $EGID $zlnfs
+
print 'Garbuglio' >nonzerolength
mkdir modish
@@ -131,19 +148,19 @@
print -u $ZTST_fd 'This test takes two seconds...'
sleep 2
- cat unmodified
- touch newnewnew
+ cat $unmodified
+ touch $newnewnew
if [[ $OSTYPE == "cygwin" ]]; then
print -u$ZTST_fd "Warning: not testing [[ -N file ]] (not supported on Cygwin)"
true
- elif [[ "$(find . -prune -fstype nfs 2>/dev/null)" == "." ]]; then
+ elif (( isnfs )); then
print -u$ZTST_fd "Warning: not testing [[ -N file ]] (not supported with NFS)"
true
elif test -f /etc/mtab && { grep $(df . 2>/dev/null| tail -n1 | awk '{print $1}') /etc/mtab | grep -q noatime; }; then
print -u$ZTST_fd "Warning: not testing [[ -N file ]] (not supported with noatime file system)"
true
else
- [[ -N newnewnew && ! -N unmodified ]]
+ [[ -N $newnewnew && ! -N $unmodified ]]
fi
0:-N cond
F:This test can fail on NFS-mounted filesystems as the access and
@@ -153,10 +170,10 @@ F:are not recorded. Also, Linux ext3 filesystems may be mounted
F:with the noatime option which does not update access times.
F:Failures in these cases do not indicate a problem in the shell.
- [[ newnewnew -nt zerolength && ! (unmodified -nt zerolength) ]]
+ [[ $newnewnew -nt $zlnfs && ! ($unmodified -nt $zlnfs) ]]
0:-nt cond
- [[ zerolength -ot newnewnew && ! (zerolength -ot unmodified) ]]
+ [[ $zlnfs -ot $newnewnew && ! ($zlnfs -ot $unmodified) ]]
0:-ot cond
[[ link -ef zerolength && ! (link -ef nonzerolength) ]]
@@ -234,8 +251,8 @@ F:Failures in these cases do not indicate a problem in the shell.
fn() {
# careful: first file must exist to trigger bug
- [[ -e unmodified ]] || print Where\'s my file\?
- [[ unmodified -nt NonExistentFile ]]
+ [[ -e $unmodified ]] || print Where\'s my file\?
+ [[ $unmodified -nt NonExistentFile ]]
print status = $?
}
fn
@@ -360,3 +377,6 @@ F:Failures in these cases do not indicate a problem in the shell.
%clean
# This works around a bug in rm -f in some versions of Cygwin
chmod 644 unmodish
+ for tmpfile in $newnewnew $unmodified $zlnfs; do
+ [[ -f $tmpfile ]] && rm -f $tmpfile
+ done