Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Damn race conditions ...



On 2014/03/18, at 9:47, Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
> OF course it's not consistent WHERE it failes, so patching any one test
> is not likely to help.  E.g., in this most recent try the failure is
> here:

Are failures always at tests with comptesteval?

comptesteval uses '. $tmp' for executing commands in a
file $tmp by the slave zsh, but the '.' (or source)
would temporarily change the tty mode of the slave zsh
and may cause some trouble ...

It seems we can avoid using comptesteval as in the
patch below. Please git it a try.



diff --git a/Test/X02zlevi.ztst b/Test/X02zlevi.ztst
index 60f878e..19188df 100644
--- a/Test/X02zlevi.ztst
+++ b/Test/X02zlevi.ztst
@@ -21,19 +21,19 @@
 >text
 >CURSOR: 8
 
-  comptesteval 'print -z before'
+  zpty_run 'print -z before'
   zletest $'after\e.'
 0:repeat initial edit with non-blank starting line
 >BUFFER: beforeafterafter
 >CURSOR: 15
 
-  comptesteval 'setopt overstrike;print -z bung'
+  zpty_run 'setopt overstrike;print -z bung'
   zletest $'ing\e2|.'
 0:repeat initial edit with overstrike set
 >BUFFER: binging
 >CURSOR: 3
 
-  comptesteval 'bindkey "^_" undo'
+  zpty_run 'bindkey "^_" undo'
   zletest $'undoc\037e'
 0:use of undo in vi insert mode
 >BUFFER: undoe
@@ -49,19 +49,19 @@
 >BUFFER: z
 >CURSOR: 1
 
-  comptesteval 'bindkey -a "^K" redo'
+  zpty_run 'bindkey -a "^K" redo'
   zletest $'123\C-_\e\C-k'
 0:undo in insert mode, redo in command
 >BUFFER: 123
 >CURSOR: 2
 
-  comptesteval 'bindkey "^Y" redo'
+  zpty_run 'bindkey "^Y" redo'
   zletest $'pre\eA123\C-_\C-y\eu'
 0:undo and redo in insert mode, undo in command
 >BUFFER: pre
 >CURSOR: 2
 
-  comptesteval 'bindkey "^Gu" split-undo'
+  zpty_run 'bindkey "^Gu" split-undo'
   zletest $'one\C-gutwo\eu'
 0:split the undo sequence
 >BUFFER: one
diff --git a/Test/comptest b/Test/comptest
index 48b6cdf..4655f3b 100644
--- a/Test/comptest
+++ b/Test/comptest
@@ -102,6 +102,14 @@ zpty_flush() {
   fi
 }
 
+zpty_run() {
+  zpty -w zsh "$*"
+  zpty -r -m zsh log "*<PROMPT>*" || {
+    print "prompt hasn't appeared."
+    return 1
+  }
+}
+
 comptesteval () {
   local tmp=/tmp/comptest.$$
 





Messages sorted by: Reverse Date, Date, Thread, Author