From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1430 invoked by alias); 9 Feb 2014 18:54:01 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 32371 Received: (qmail 27485 invoked from network); 9 Feb 2014 18:53:45 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 From: Bart Schaefer Message-id: <140209105343.ZM24252@torch.brasslantern.com> Date: Sun, 09 Feb 2014 10:53:43 -0800 In-reply-to: <140208144555.ZM16333@torch.brasslantern.com> Comments: In reply to Bart Schaefer "Re: Commit 137b15a fails X02zlevi test" (Feb 8, 2:45pm) References: <140208121311.ZM14905@torch.brasslantern.com> <140208144555.ZM16333@torch.brasslantern.com> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: zsh-workers@zsh.org Subject: Re: Commit 137b15a fails X02zlevi test MIME-version: 1.0 Content-type: text/plain; charset=us-ascii On Feb 8, 2:45pm, Bart Schaefer wrote: } Subject: Re: Commit 137b15a fails X02zlevi test } } The problem stems from the same zpty used for all the tests, and there } is something about the "zletest" function that leaves the zpty in a } bad state for a subsequent "comptesteval". Oddly, two "zletest" calls } in a row do not encounter whatever situation this is. I've been repeatedly running make check TESTNUM=X02 and have decided that it fails nondeterministically. Sometimes the slave side of the zpty is able to read parts of its input twice and other times it is not. Every now and then it will go through all tests succeeding and then on the next attempt a random one of the tests will fail. It's never the very first test; most often but not always, it's the first test among the second or later that begins with a call to "comptesteval". I've tried: - adding "sleep" at various places to try to resolve race conditions; - setting BUFFER="" in zle-finish and making sure "zle -R" is called before send-break; - changing the key binding of zle-finish (and correspondingly the character written by zletest) so that comptesteval can't trip zle-finish accidentally on end of line; - adding "zle -t -r ..." in various places to be sure all output to the pty has been consumed between tests. None of these resolve it. The last one produces successful tests more often, but seems to increase the randomness of which test fails the rest of the time. I've run out of ideas ...