Subject: RE: bug#42399: DejaGnu randomly truncates lines in runtest output

From: Alex Coplan <[email-masked]>
Date: Mon, 20 Jul 2020 07:34:09 +0000

Hi both,

> -----Original Message-----
> From: Jacob Bachmeyer <[email-masked]>
> Sent: 18 July 2020 00:19
> To: Andreas Schwab <[email-masked]>
> Cc: Alex Coplan <[email-masked]>; [email-masked]; nd <[email-masked]>
> Subject: Re: bug#42399: DejaGnu randomly truncates lines in runtest output
> 
> Andreas Schwab wrote:
> > On Jul 16 2020, Alex Coplan wrote:
> >
> >> Then, create a subdirectory bug.dg, containing a single file bug.exp
> >> with the following contents:
> >>
> >>   global text
> >>
> >>   spawn "./a.out"
> >>
> >>   set prefix "\[^\r\n\]*"
> >>   expect {
> >>     -re "^$prefix\tPASSED:${text}*" {
> >>
> >
> > Are you sure you want to repeatedly match the last character in ${text}?
> >
> 
> That is what host_execute currently does in DejaGnu, since at least 2001
> to now.

Yes, for context, bug.exp is reduced from the "fixed_host_execute"
function in the libgccjit testsuite [0].

> The ${text} pattern fragment in lib/dejagnu.exp is a character
> class; I am considering replacing its use in host_execute and changing
> the {${text}*} in those patterns to {[^\n]+\n} which should fix this
> bug, but could have far-reaching effects on testsuites, which makes me
> somewhat reluctant to do so this close to a release.

This change to the pattern appears to fix the issue for me, thanks!
After some further testing I will submit a patch for the
fixed_host_execute function in the GCC testsuite.

> 
> This bug will be fixed in 1.6.4, but whether it will be fixed or a known
> bug in 1.6.3 is not yet determined.
> 
> 
> -- Jacob

Thanks,
Alex

[0] : https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/testsuite/jit.dg/jit.exp;h=2f54681713b86c44069da88efd769e01f7c7bae4;hb=HEAD#l117