summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2010-10-04 16:54:22 +0100
committerPádraig Brady <P@draigBrady.com>2010-10-04 16:54:22 +0100
commit6ad89f223313920a4f752015cb76c9905c363179 (patch)
tree12d6bc3a3fe42e49a2a9bb2f1a98101a23f922b9
parent2006aeba9d44ecc49fefcba65d93451dc537cd01 (diff)
downloadcoreutils-6ad89f223313920a4f752015cb76c9905c363179.tar.xz
tests: refactor the stat-birthtime test to use retry_delay_
* tests/misc/stat-birthtime: This recently added test fits the pattern of requiring a delay to pass, so get it to use retry_delay_()
-rwxr-xr-xtests/misc/stat-birthtime30
1 files changed, 20 insertions, 10 deletions
diff --git a/tests/misc/stat-birthtime b/tests/misc/stat-birthtime
index 4490ee808..e584df02a 100755
--- a/tests/misc/stat-birthtime
+++ b/tests/misc/stat-birthtime
@@ -27,15 +27,25 @@ atime=$(stat --format %X a) || fail=1
mtime=$(stat --format %Y a) || fail=1
ctime=$(stat --format %Z a) || fail=1
-case $(stat --format %x a) in
- *.000000000*) sleep 2;; # worst case file system is FAT
- *) sleep .02;; # should be adequate for any system with subsecond resolution
-esac
-
-touch a || fail=1
-test "x$btime" = x$(stat --format %W a) || fail=1
-test "x$atime" != x$(stat --format %X a) || fail=1
-test "x$mtime" != x$(stat --format %Y a) || fail=1
-test "x$ctime" != x$(stat --format %Z a) || fail=1
+# Wait up to 2.17s for timestamps to change.
+# ----------------------------------------
+# iterations file system resolution e.g.
+# ----------------------------------------
+# 1 nano or micro second ext4
+# 4 1 second ext3
+# 5 2 second FAT
+# ----------------------------------------
+check_timestamps_updated()
+{
+ local delay="$1"
+ sleep $delay
+ touch a || fail=1
+
+ test "x$btime" = x$(stat --format %W a) &&
+ test "x$atime" != x$(stat --format %X a) &&
+ test "x$mtime" != x$(stat --format %Y a) &&
+ test "x$ctime" != x$(stat --format %Z a)
+}
+retry_delay_ check_timestamps_updated .07 5 || fail=1
Exit $fail