Re: Separating stdout and stderr

Christophe Lyon <[email protected]>
Newsgroups gmane.comp.sysutils.dejagnu.general
Message-ID <CAKdteObVx18oY1kdUF1Scut=sQpybGC2Rj5Wr-Rrk8DAYXKArQ@mail.gmail.com>
On 26 March 2016 at 15:29, Ben Elliston <[email protected]> wrote:
> I found the problem. The sanitiser execution tests produce a lot of
> output (~20KB on stderr).  Somtimes, when EOF is matched in
> standard_wait, there are unmatched characters left in the expect
> buffer.  These need to be appended to $output.  This has probably
> escaped us until now because execution test output has been very
> short.
>
> I'll do some more testing before checking this in.
>
> Cheers,
> Ben
>
>
> 2016-03-27  Ben Elliston  <[email protected]>
>
>         * lib/remote.exp (standard_wait): Append any trailing characters
>         to $output that may be still in $expect_out(buffer) when eof is
>         matched. Remove arbitrary limitation in the ".+" matching case,
>         similar to the change to local_exec on 2016-02-17.
>

Thanks for looking at this.

However, a manual of the gcc testsuite indicates that we don't use
standard_wait.

This is confirmed by a full validation in our lab, where I still see
several random
results in several asan and ubsan tests.

So I think this patch is not sufficient.

Christophe.


> diff --git a/lib/remote.exp b/lib/remote.exp
> index e0d9d18..029d934 100644
> --- a/lib/remote.exp
> +++ b/lib/remote.exp
> @@ -1122,17 +1122,15 @@ proc standard_wait { dest timeout } {
>      remote_expect $dest $timeout {
>         -re ".+" {
>             append output $expect_out(buffer)
> -           if { [string length $output] > 512000 } {
> -               remote_close $dest
> -               set status 1
> -           } else {
> -               exp_continue -continue_timer
> -           }
> +           exp_continue -continue_timer
>         }
>         timeout {
>             warning "program timed out."
>         }
>         eof {
> +           # There may be trailing characters in the buffer.
> +           # Append them, too.
> +           append output $expect_out(buffer)
>             if {[board_info $dest exists fileid_origid]} {
>                 global board_info
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.