[Bash-completion-devel] Expect buffering fixes

Freddy Vulto fvulto at gmail.com
Wed Mar 24 21:02:36 UTC 2010


On 100318 06:27, Crestez Dan Leonard wrote:
> I downloaded bash-static from lenny, it seems to be the close to the
> version you are talking about. I was unable to reproduce the issue.

I had the problem on stock bash-3.2.39 coming with Debian-5.0.4.  I'm running
this on a Pentium III 450 MHz.  This is a rather slow system, hence the slow
timings(?), but a good test...  Unfortunately I can't reproduce the problem now
either(?).  Maybe some other processes were slowing the system down...

> So I made this all optional instead, sync_after_int will sleep unless
> you pass --fast-sync to run. This seems like a reasonable compromise.
> I don't insist on merging this, I just find long runtest times annoying.

I agree.  But also I think a fast test suite is key to proliferation/success of
automated testing.  Thus said, I think the bash-4 way of synchronizing
(synchronizing on ^C in output) is king and we:
- should make this the default for bash-4
- should merge this into the master branch (after getting it right in this branch)

The default for bash-3 should then be to synchronize using `sleep'.

I compiled bash-3.2.0 (since this is the minimum required version now) and also
had some timing problems (albeit not reproducable again).  I had to increase
the timing between the ^C and prompt-matching from .1 to .5.  Maybe instead of
an option `--fast-sync' we can make an option `--sleep' which switches to
slow-sync (on bash > 3, since for bash <= 3 it already would be the default)
and allows specifying an alternate timing.

Since the test-library is containing more and more tweaks, I'm thinking of
creating an additional test area (DejaGnu 'tool') called "self" in which we can
test the test suite itself is behaving as expected.  What do you think?  I'm
thinking of self-testing the sending of \005 (^E) and also another regression I
noticed, regarding this test which used to FAIL but is now PASSing because we
removed the `$' (match on end) somewhere (I think in match_items):

    expected: foo bar
    real:     foo bar cee


Greetings,

Freddy Vulto
http://fvue.nl



More information about the Bash-completion-devel mailing list