summaryrefslogtreecommitdiff
path: root/tests/test-lib.sh
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivano@gnu.org>2009-06-02 08:28:23 +0200
committerJim Meyering <meyering@redhat.com>2009-06-15 18:34:14 +0200
commitae494d4be80df2aff50a2ac46fdc0c23de109ea3 (patch)
treeca567ba9ae1d870b139778df835707eb1e358ee2 /tests/test-lib.sh
parent358aca5fb9cb67c593aa5f1ddf166dbefcf55f0c (diff)
downloadcoreutils-ae494d4be80df2aff50a2ac46fdc0c23de109ea3.tar.xz
tail: use inotify if it is available
* NEWS: Document the new feature. * m4/jm-macros.m4: Check if inotify is present. * src/tail.c (tail_forever_inotify): New function. (main): Use the inotify-based function, if possible. * tests/Makefile.am: Add new tests for tail. * tests/test-lib.sh (require_proc_pid_status_, get_process_status_): New functions. * tests/tail-2/pid: New file. * tests/tail-2/wait: New file. * tests/tail-2/tail-n0f: Refactor code into the test-lib.sh require_proc_pid_status_ function.
Diffstat (limited to 'tests/test-lib.sh')
-rw-r--r--tests/test-lib.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/test-lib.sh b/tests/test-lib.sh
index e5eed8db6..d99e3a966 100644
--- a/tests/test-lib.sh
+++ b/tests/test-lib.sh
@@ -122,6 +122,11 @@ uid_is_privileged_()
esac
}
+get_process_status_()
+{
+ sed -n '/^State:[ ]*\([[:alpha:]]\).*/s//\1/p' /proc/$1/status
+}
+
# Convert an ls-style permission string, like drwxr----x and -rw-r-x-wx
# to the equivalent chmod --mode (-m) argument, (=,u=rwx,g=r,o=x and
# =,u=rw,g=rx,o=wx). Ignore ACLs.
@@ -234,6 +239,17 @@ of group names or numbers. E.g.,
esac
}
+# Is /proc/$PID/status supported?
+require_proc_pid_status_()
+{
+ sleep 2 &
+ local pid=$!
+ sleep .5
+ grep '^State:[ ]*[S]' /proc/$pid/status > /dev/null 2>&1 ||
+ skip_test_ "/proc/$pid/status: missing or 'different'"
+ kill $pid
+}
+
# Does the current (working-dir) file system support sparse files?
require_sparse_support_()
{