[PATCH] test: use dtach(1) instead of screen(1) in emacs tests.
Dmitry Kurochkin
dmitry.kurochkin at gmail.com
Fri Nov 11 00:41:11 PST 2011
Hi Tomi.
On Thu, 10 Nov 2011 14:22:17 -0800, Jameson Graef Rollins <jrollins at finestructure.net> wrote:
> From: Tomi Ollila <tomi.ollila at iki.fi>
>
> dtach is lighter than screen and is not setuid/setgid program so
> TMPDIR does not get reset by dynamic loader when executed.
>
> Signed-off-by: Jameson Graef Rollins <jrollins at finestructure.net>
> ---
> This tweaks the original patch slightly by removing the no-longer needed
> screenrc variables.
>
> test/test-lib.sh | 5 ++---
> 1 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/test/test-lib.sh b/test/test-lib.sh
> index c81c709..c0fe037 100755
> --- a/test/test-lib.sh
> +++ b/test/test-lib.sh
> @@ -50,8 +50,6 @@ TZ=UTC
> TERM=dumb
> export LANG LC_ALL PAGER TERM TZ
> GIT_TEST_CMP=${GIT_TEST_CMP:-diff -u}
> -export SCREENRC=/dev/null
> -export SYSSCREENRC=/dev/null
>
> # Protect ourselves from common misconfiguration to export
> # CDPATH into the environment
> @@ -844,7 +842,8 @@ test_emacs () {
> if [ -z "$EMACS_SERVER" ]; then
> EMACS_SERVER="notmuch-test-suite-$$"
> # start a detached screen session with an emacs server
> - screen -S "$EMACS_SERVER" -d -m "$TMP_DIRECTORY/run_emacs" \
> + TERM=xterm dtach -n "$TMP_DIRECTORY/dtach-emacs-socket-$$" \
Can you please give a more detailed explanation (and a comment) to
justify this workaround:
* Is it actually needed for dtach or emacs? If it is the latter, then
it should be "dtach ... env TERM=xterm emacs ...", right?
* Why should we care about systems that use terminals without
corresponding terminfo installed?
* Why is it safe to use xterm? Is there any standard that requires
xterm info to be present on the system?
I have tried running dtach with emacs in rxvt-unicode and it worked fine
without overriding TERM.
I have also tried running dtach with invalid TERM:
$ TERM=non-existing-term dtach -n s /bin/sh
zsh: can't find terminal definition for non-existing-term
No segfault, shell is started fine.
But emacs does not work without a valid terminfo:
$ TERM=non-existing-term emacs -nw
emacs: Terminal type non-existing-term is not defined.
If that is not the actual type of terminal you have,
use the Bourne shell command `TERM=... export TERM' (C-shell:
`setenv TERM ...') to specify the correct type. It may be necessary
to do `unset TERMINFO' (C-shell: `unsetenv TERMINFO') as well.
Regards,
Dmitry
> + "$TMP_DIRECTORY/run_emacs" \
> --no-window-system \
> --eval "(setq server-name \"$EMACS_SERVER\")" \
> --eval '(server-start)' \
> --
> 1.7.7.1
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
More information about the notmuch
mailing list