Re: [PATCH 1/1] test/test-lib.sh: use vt100 as dtach terminal if TERM nonexistent or dumb

Subject: Re: [PATCH 1/1] test/test-lib.sh: use vt100 as dtach terminal if TERM nonexistent or dumb

Date: Wed, 23 Jan 2013 19:25:39 +0200

To: Tomi Ollila, notmuch@notmuchmail.org

Cc: tomi.ollila@iki.fi

From: Jani Nikula


On Wed, 23 Jan 2013, Tomi Ollila <tomi.ollila@iki.fi> wrote:
> The TERM environment variable is set to 'dumb' when running tests, but
> the original value of it is stored for echoing colors and running (emacs

Extra ( there?

> (somewhat interactively) in detached session. Emacs requires some
> terminal control sequences to be available for interactive operation.
> In case original TERM is (also) 'dumb' (or nonexistent) emacs cannot run
> interactively. To fix this problem dtach (and emacs as it's child
> process) is run with TERM=vt100 in case original TERM was nonexistent or
> dumb. This way there is a chance to run emacs tests with different user
> terminals and potentially find problems there.
> ---
>  test/test-lib.sh | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/test/test-lib.sh b/test/test-lib.sh
> index 6ce3b31..3bc67f7 100644
> --- a/test/test-lib.sh
> +++ b/test/test-lib.sh
> @@ -41,6 +41,10 @@ esac
>  # Keep the original TERM for say_color and test_emacs
>  ORIGINAL_TERM=$TERM
>  
> +# dtach(1) provides more capable terminal environment to anything
> +# that requires more than dumb terminal...
> +[ x"${TERM:-dumb}" = xdumb ] && DTACH_TERM=vt100 || DTACH_TERM=$TERM

That's just a tiny bit more trickery than I usually like... but then
it's shell after all... :)

> +
>  # For repeatability, reset the environment to known value.
>  LANG=C
>  LC_ALL=C
> @@ -996,9 +1000,10 @@ test_emacs () {
>  		fi
>  		server_name="notmuch-test-suite-$$"
>  		# start a detached session with an emacs server
> -		# user's TERM is given to dtach which assumes a minimally
> +		# user's TERM (or 'vt100' om case user's term is nonexistent
> +		# or 'dumb') is given to dtach which assumes a minimally

Nitpick, s/om/in/

Otherwise LGTM, and works as advertised.


Jani.

>  		# VT100-compatible terminal -- and emacs inherits that
> -		TERM=$ORIGINAL_TERM dtach -n "$TEST_TMPDIR/emacs-dtach-socket.$$" \
> +		TERM=$DTACH_TERM dtach -n "$TEST_TMPDIR/emacs-dtach-socket.$$" \
>  			sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \
>  				--no-window-system \
>  				$load_emacs_tests \
> -- 
> 1.8.1
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch

Thread: