Hello,
During testing we've noticed the "test for excess errors" check on the
"c-c++-common/builtins.c -Wc++-compat" sometimes passes and sometimes
doesn't.
The cause seems to be a restriction in dejagnu where it stops reading
after a given read if its output buffer is greater than 512000 bytes.
(see the below snippet copied from the "local_exec" procedure in
$DEJAGNU_INSTALL/remote.exp)
# Wait for either $timeout seconds to elapse, or for the program to
# exit.
expect {
-i $spawn_id -timeout $timeout -re ".+" {
append output $expect_out(buffer)
if { [string length $output] < 512000 } {
exp_continue -continue_timer
}
}
timeout {
warning "program timed out."
}
eof {
set got_eof 1
}
}
If the last read before the output is truncated happened to get part of
a line so that the "warning" isn't there, and hence so the {
dg-prune-output "warning" } directive doesn't apply, then the testcase
fails.
This can only happen when the full pathname of the test file is 73
characters long (or more), since each warning line includes the full
pathname the length has a huge affect.
I'm mainly mentioning it to see if anyone else was having this problem,
so I can tell how important it is to try and handle this more thoroughly.
Regards,
MM