Re: [PATCH] test: use dtach(1) instead of screen(1) in emacs tests

Subject: Re: [PATCH] test: use dtach(1) instead of screen(1) in emacs tests

Date: Fri, 11 Nov 2011 23:15:02 +0200

To: Dmitry Kurochkin, Notmuch Mail

Cc:

From: Tomi Ollila


On Sat, 12 Nov 2011 01:06:40 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> On Fri, 11 Nov 2011 22:48:13 +0200, Tomi Ollila <too@iki.fi> wrote:
> > dtach is simpler than screen and is not setuid/setgid program so
> > TMPDIR does not get cleared by dynamic loader when executed.
> > ---
> > 
> > Updated version after discussion with DmitryKurochkin and amdragon
> > on IRC. Thank you.
> > 
> 
> Looks good to me (though I did not test it).
> 
> Few minor comments below.
> 
> >  test/test-lib.sh |   25 +++++++++++++------------
> >  1 files changed, 13 insertions(+), 12 deletions(-)
> > 
> > diff --git a/test/test-lib.sh b/test/test-lib.sh
> > index c81c709..c232130 100755
> > --- a/test/test-lib.sh
> > +++ b/test/test-lib.sh
> > @@ -39,7 +39,7 @@ done,*)
> >  	;;
> >  esac
> >  
> > -# Keep the original TERM for say_color
> > +# Keep the original TERM for say_color and emacs tests
> 
> s/emacs tests/test_emacs/ for consistency with say_color?

yes. thanks...

> 
> >  ORIGINAL_TERM=$TERM
> >  
> >  # For repeatability, reset the environment to known value.
> > @@ -843,12 +841,15 @@ EOF
> >  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" \
> > -			--no-window-system \
> > -			--eval "(setq server-name \"$EMACS_SERVER\")" \
> > -			--eval '(server-start)' \
> > -			--eval "(orphan-watchdog $$)" || return
> > +		# start a detached session with an emacs server
> > +		# user's TERM is given to dtach which assumes a minimally
> > +		# VT100-compatible terminal -- and emacs inherits that
> > +		TERM=$ORIGINAL_TERM dtach -n "$TMP_DIRECTORY/emacs-dtach-socket.$$" \
> > +		 	sh -c "stty rows 24 cols 80; exec '$TMP_DIRECTORY/run_emacs' \
> 
> The above line has a space after two tabs.

oops...

I also forgot 

-export SCREENRC=/dev/null
-export SYSSCREENRC=/dev/null

(dropped accidetally when cherry-picking non-whitespace changes)
Thanks for playing. Try once more...

> 
> Regards,
>   Dmitry

Tomi

> 
> > +				--no-window-system \
> > +				--eval '(setq server-name \"$EMACS_SERVER\")' \
> > +				--eval '(server-start)' \
> > +				--eval '(orphan-watchdog $$)'" || return
> >  		# wait until the emacs server is up
> >  		until test_emacs '()' 2>/dev/null; do
> >  			sleep 1
> > -- 
> > 1.7.6.1
> > 
> > _______________________________________________
> > notmuch mailing list
> > notmuch@notmuchmail.org
> > http://notmuchmail.org/mailman/listinfo/notmuch
> 

Thread: