]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
tests: avoid spurious parallel failure due to temporary disk full
authorJim Meyering <meyering@redhat.com>
Sun, 3 Apr 2011 19:54:10 +0000 (21:54 +0200)
committerJim Meyering <meyering@redhat.com>
Mon, 4 Apr 2011 16:21:32 +0000 (18:21 +0200)
Running the new fiemap-empty test uses 600MB of disk space via
fallocate, and in so doing caused failure in unrelated tests that
were running in parallel on a small file system.  Rather than
simply running fallocate (which allocates the space, inducing
disk full when it fails), skip the test if there is less than
800MB of free space, as computed via stat and awk.
* tests/init.cfg (require_file_system_bytes_free_): New function.
* tests/cp/fiemap-empty: Use it.

tests/cp/fiemap-empty
tests/init.cfg

index 203619a67dec68a762f74e9e1930be9779baa3fb..42d816bb0094cc213845762fb6b72e85f1bd99ac 100755 (executable)
@@ -31,6 +31,13 @@ fallocate -l 1 -n falloc.test ||
   skip_test_ 'this file system lacks FALLOCATE support'
 rm falloc.test
 
+# Require more space than we'll actually use, so that
+# tests run in parallel do not run out of space.
+# Otherwise, with inadequate space, simply running the following
+# fallocate command would induce a temporary disk-full condition,
+# which would cause failure of unrelated tests run in parallel.
+require_file_system_bytes_free_ 800000000
+
 fallocate -l 600000000 space.test ||
   skip_test_ 'this test needs at least 600MB free space'
 
index 07114555c2a246d55a4ddb1f77c17efa73a7dcdb..92f841f949a42812ea54f5427469ff105b0eeda5 100644 (file)
@@ -151,6 +151,14 @@ require_built_()
   test $skip_ = yes && skip_test_ "required program(s) not built"
 }
 
+require_file_system_bytes_free_()
+{
+  local req=$1
+  local expr=$(stat -f --printf "$req / %S <= %a" .)
+  awk "BEGIN{ exit !($expr) }" \
+    || skip_test_ "this test needs at least $req bytes of free space"
+}
+
 uid_is_privileged_()
 {
   # Make sure id -u succeeds.