Hi Thomas.

On Wed, 20 Jul 2011 14:36:36 +0200, Thomas Jost <[email protected]> wrote:
> Before this change, the test suite reported many failed tests on machines 
> where
> screen is not installed (which is the case of many *BSD systems). This patch
> makes the test suite try to use tmux, another terminal multiplexer, if screen 
> is
> not available.

This is a nice improvement.  But I think we should make it even better :)
There are more terminal emulators besides screen and tmux (dtach comes
to mind).  We need a more general mechanism for trying them.  There
should be a list of commands for running terminal emulators in the order
of preference (I think that is dtach, tmux, screen), and we should try
each one in a loop (this would also avoid repeating the long emacs
command).

Regards,
  Dmitry

> ---
>  test/test-lib.sh |   13 +++++++++++--
>  1 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/test/test-lib.sh b/test/test-lib.sh
> index 0608e42..5851b3d 100755
> --- a/test/test-lib.sh
> +++ b/test/test-lib.sh
> @@ -860,12 +860,21 @@ EOF
>  test_emacs () {
>       if [ -z "$EMACS_SERVER" ]; then
>               EMACS_SERVER="notmuch-test-suite-$$"
> -             # start a detached screen session with an emacs server
> +             # start a detached screen or tmux session with an emacs server
>               screen -S "$EMACS_SERVER" -d -m "$TMP_DIRECTORY/run_emacs" \
>                       --no-window-system \
>                       --eval "(setq server-name \"$EMACS_SERVER\")" \
>                       --eval '(server-start)' \
> -                     --eval "(orphan-watchdog $$)" || return
> +                     --eval "(orphan-watchdog $$)"
> +             if [ "$?" != 0 ]
> +             then
> +                     tmux -f /dev/null -L "$EMACS_SERVER" new-session -d 
> "$TMP_DIRECTORY/run_emacs \
> +                             --no-window-system \
> +                             --eval \"(setq server-name 
> \\\"$EMACS_SERVER\\\")\" \
> +                             --eval '(server-start)' \
> +                             --eval \"(orphan-watchdog $$)\"" || return
> +             fi
> +
>               # wait until the emacs server is up
>               until test_emacs '()' 2>/dev/null; do
>                       sleep 1
> -- 
> 1.7.6
> 
_______________________________________________
notmuch mailing list
[email protected]
http://notmuchmail.org/mailman/listinfo/notmuch

Reply via email to