aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar David Bremner <david@tethera.net>2014-01-11 13:25:39 -0400
committerGravatar David Bremner <david@tethera.net>2014-01-12 17:08:14 -0400
commitb4f3be53c8789485d63aafde03b5f5a7e5d86592 (patch)
treedcdbbb00bf7ba4387d69e0f1619362623090e6d3 /test
parentbeaf251e16d40bb38d56a1ec5573bfdc1c1cfb0d (diff)
test/emacs: replace the use of process-attributes with signal-process
In some environments (at least Hurd), process-attributes is unimplimented and always returns nil. This ends up causing test failures (see e.g. id:87a9ffofsc.fsf@zancas.localnet). Historically and according to POSIX 1003.1-2001, a signal of 0 can be used to check the validity of a pid. This seems less heinous than parsing the output of ps(1).
Diffstat (limited to 'test')
-rw-r--r--test/test-lib.el15
1 files changed, 9 insertions, 6 deletions
diff --git a/test/test-lib.el b/test/test-lib.el
index d26b49f7..37fcb3d0 100644
--- a/test/test-lib.el
+++ b/test/test-lib.el
@@ -77,19 +77,22 @@ invisible text."
(setq start next-pos)))
str))
+;; process-attributes is not defined everywhere, so define an
+;; alternate way to test if a process still exists.
+
+(defun test-process-running (pid)
+ (= 0
+ (signal-process pid 0)))
+
(defun orphan-watchdog-check (pid)
"Periodically check that the process with id PID is still
running, quit if it terminated."
- (if (not (process-attributes pid))
+ (if (not (test-process-running pid))
(kill-emacs)))
(defun orphan-watchdog (pid)
"Initiate orphan watchdog check."
- ; If process-attributes returns nil right away, that probably means
- ; it is unimplimented. So we delay two minutes before killing emacs.
- (if (process-attributes pid)
- (run-at-time 60 60 'orphan-watchdog-check pid)
- (run-at-time 120 60 'orphan-watchdog-check pid)))
+ (run-at-time 60 60 'orphan-watchdog-check pid))
(defun hook-counter (hook)
"Count how many times a hook is called. Increments