[PATCH 1/2] test: delay watchdog checks in emacs.

2014-01-01 Thread David Bremner
david at tethera.net writes:

> From: David Bremner 
>
> Instead of checking immediately for the watched process, delay a
> minute, or in the case that process-attributes returns nil, for two
> minutes.  This is intended to cope with the case that
> process-attributes is unimplimented, and returns always returns nil.
> In this case, the watchdog check is the same as the two minute limit
> imposed by timeout.
> ---

It seems there are still lingering problems with this.

On a Debian Hurd system, the following consistently dies after running
for two minutes. It seems like our test harness can't cope with the
emacs server dying as well as it ought to.  I'm not sure what the right
answer is. A crude workaround would be to increase the hardcoded
timeout. Alternatively, maybe test_emacs should make some effort to
restart the server if it is no longer running.

#!/usr/bin/env bash
test_description="emacs fcc"
. ./test-lib.sh

for ((count=1; count<=1000; count++)); do
id=fub.$count
subject=meh
echo attempting $count
emacs_fcc_message \
"$subject" \
'This is a test message with inline attachment with a filename' \
"(mml-attach-file \"$TEST_DIRECTORY/README\" nil nil \"inline\")
 (message-goto-eoh)
 (insert \"Message-ID: <$id>\n\")"
delivered=$(find $MAIL_DIR/sent -type f | wc -l)
if [[ $delivered != $count ]]; then
GIT_EXIT_OK=1
echo FATAL: $count attempted $delivered delivered
exit 1;
fi
done

test_done




Re: [PATCH 1/2] test: delay watchdog checks in emacs.

2014-01-01 Thread David Bremner
da...@tethera.net writes:

 From: David Bremner brem...@debian.org

 Instead of checking immediately for the watched process, delay a
 minute, or in the case that process-attributes returns nil, for two
 minutes.  This is intended to cope with the case that
 process-attributes is unimplimented, and returns always returns nil.
 In this case, the watchdog check is the same as the two minute limit
 imposed by timeout.
 ---

It seems there are still lingering problems with this.

On a Debian Hurd system, the following consistently dies after running
for two minutes. It seems like our test harness can't cope with the
emacs server dying as well as it ought to.  I'm not sure what the right
answer is. A crude workaround would be to increase the hardcoded
timeout. Alternatively, maybe test_emacs should make some effort to
restart the server if it is no longer running.

#!/usr/bin/env bash
test_description=emacs fcc
. ./test-lib.sh

for ((count=1; count=1000; count++)); do
id=fub.$count
subject=meh
echo attempting $count
emacs_fcc_message \
$subject \
'This is a test message with inline attachment with a filename' \
(mml-attach-file \$TEST_DIRECTORY/README\ nil nil \inline\)
 (message-goto-eoh)
 (insert \Message-ID: $id\n\)
delivered=$(find $MAIL_DIR/sent -type f | wc -l)
if [[ $delivered != $count ]]; then
GIT_EXIT_OK=1
echo FATAL: $count attempted $delivered delivered
exit 1;
fi
done

test_done


___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH 1/2] test: delay watchdog checks in emacs.

2013-01-29 Thread da...@tethera.net
From: David Bremner 

Instead of checking immediately for the watched process, delay a
minute, or in the case that process-attributes returns nil, for two
minutes.  This is intended to cope with the case that
process-attributes is unimplimented, and returns always returns nil.
In this case, the watchdog check is the same as the two minute limit
imposed by timeout.
---
 test/test-lib.el |   13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/test/test-lib.el b/test/test-lib.el
index dece811..d26b49f 100644
--- a/test/test-lib.el
+++ b/test/test-lib.el
@@ -77,12 +77,19 @@ invisible text."
(setq start next-pos)))
 str))

-(defun orphan-watchdog (pid)
+(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))
-  (kill-emacs)
-(run-at-time "1 min" nil 'orphan-watchdog 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)))

 (defun hook-counter (hook)
   "Count how many times a hook is called.  Increments
-- 
1.7.10.4



[PATCH 1/2] test: delay watchdog checks in emacs.

2013-01-29 Thread david
From: David Bremner brem...@debian.org

Instead of checking immediately for the watched process, delay a
minute, or in the case that process-attributes returns nil, for two
minutes.  This is intended to cope with the case that
process-attributes is unimplimented, and returns always returns nil.
In this case, the watchdog check is the same as the two minute limit
imposed by timeout.
---
 test/test-lib.el |   13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/test/test-lib.el b/test/test-lib.el
index dece811..d26b49f 100644
--- a/test/test-lib.el
+++ b/test/test-lib.el
@@ -77,12 +77,19 @@ invisible text.
(setq start next-pos)))
 str))
 
-(defun orphan-watchdog (pid)
+(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))
-  (kill-emacs)
-(run-at-time 1 min nil 'orphan-watchdog 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)))
 
 (defun hook-counter (hook)
   Count how many times a hook is called.  Increments
-- 
1.7.10.4

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch