about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2016-05-02 17:31:18 -0700
committerBarton E. Schaefer <schaefer@zsh.org>2016-05-02 17:31:18 -0700
commit4712b8f4d55149f2b44dd50214da145d57adf56a (patch)
tree207bd3c2a2d3ce20ca18998458afb56240c82ad2
parent493c7e087981036ae2db67eb5b8e86db80b77917 (diff)
downloadzsh-4712b8f4d55149f2b44dd50214da145d57adf56a.tar.gz
zsh-4712b8f4d55149f2b44dd50214da145d57adf56a.tar.xz
zsh-4712b8f4d55149f2b44dd50214da145d57adf56a.zip
38375 (tweaked per 38384): try harder to detect noatime filesystems.
-rw-r--r--ChangeLog5
-rw-r--r--Test/C02cond.ztst22
2 files changed, 22 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index f0cb701ca..d2f0e23ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-02  Barton E. Schaefer  <schaefer@zsh.org>
+
+	* 38375 (tweaked per 38384): Test/C02cond.ztst: try harder to
+	detect noatime filesystems.
+
 2016-05-02  Frank Terbeck  <ft@bewatermyfriend.org>
 
 	* 38388: Completion/BSD/Command/_cu, Completion/Unix/Command/_gdb,
diff --git a/Test/C02cond.ztst b/Test/C02cond.ztst
index f9fc185e9..b0e84ddeb 100644
--- a/Test/C02cond.ztst
+++ b/Test/C02cond.ztst
@@ -146,17 +146,29 @@
 
 # can't be bothered with -S
 
-  print -u $ZTST_fd 'This test takes two seconds...'
-  sleep 2
-  cat $unmodified
-  touch $newnewnew
+  if [[ ${mtab::="$({mount || /sbin/mount})"} = *[(]?*[)] ]]; then
+    print -u $ZTST_fd 'This test takes two seconds...'
+  else
+    unmodified_ls="$(ls -lu $unmodified)"
+    print -u $ZTST_fd 'This test takes up to 60 seconds...'
+  fi
   if [[ $OSTYPE == "cygwin" ]]; then
     ZTST_skip="[[ -N file ]] not supported on Cygwin"
   elif (( isnfs )); then
     ZTST_skip="[[ -N file ]] not supported with NFS"
-  elif { df -k -- ${$({mount || /sbin/mount} | awk '/noatime/ {print $1,$3}'):-""} | tr -s ' ' | fgrep -- "$(df -k . | tail -1 | tr -s ' ')" } >&/dev/null; then
+  elif { (( ! $+unmodified_ls )) &&
+         { sleep 2; cat $unmodified } &&
+         { df -k -- ${$(print -r -- "$mtab" |
+                        awk '/noatime/ {print $1,$3}'):-""} | tr -s ' ' |
+           fgrep -- "$(df -k . | tail -1 | tr -s ' ')" } >&/dev/null } ||
+       { (( $+unmodified_ls )) && SECONDS=0 &&
+         ! until (( SECONDS >= 60 )); do
+             ZTST_hashmark; sleep 2; cat $unmodified
+             [[ $unmodified_ls != "$(ls -lu $unmodified)" ]] && break
+	   done }; then
     ZTST_skip="[[ -N file ]] not supported with noatime file system"
   else
+    touch $newnewnew
     [[ -N $newnewnew && ! -N $unmodified ]]
   fi
 0:-N cond