aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Coplan <alex.coplan@arm.com>2020-07-20 16:15:29 +0100
committerAlex Coplan <alex.coplan@arm.com>2020-07-20 16:31:57 +0100
commit8764e9a3fc43f1117db77d1f056b6c3f15a29db3 (patch)
tree9030c89c70aba76f55a71019d62e5b4d4150b1f5
parent57d4771b7c15db139043bf41a03b8abe01e11f18 (diff)
downloadgcc-8764e9a3fc43f1117db77d1f056b6c3f15a29db3.zip
gcc-8764e9a3fc43f1117db77d1f056b6c3f15a29db3.tar.gz
gcc-8764e9a3fc43f1117db77d1f056b6c3f15a29db3.tar.bz2
jit: Fix truncation of testsuite output [PR69435]
This fixes a bug in jit.exp which causes the DejaGnu output of the libgccjit testsuite to be nondeterministically truncated. This bug was copied from DejaGnu's own implementation of the host_execute function. See the upstream bug report [0] where the maintainers point out that the regex patterns in host_execute should (but don't currently) explicitly match newlines to avoid relying on DejaGnu not reading more than one line of the output (which is not guaranteed). This should make it easier to test jit patches in the future, since it makes it possible to reliably compare the output of two jit.sum files (as with the other tests in GCC). [0] : https://debbugs.gnu.org/cgi/bugreport.cgi?bug=42399 gcc/testsuite/ PR jit/69435 * jit.dg/jit.exp (fixed_host_execute): Fix regex patterns to always explicitly match newlines.
-rw-r--r--gcc/testsuite/jit.dg/jit.exp20
1 files changed, 10 insertions, 10 deletions
diff --git a/gcc/testsuite/jit.dg/jit.exp b/gcc/testsuite/jit.dg/jit.exp
index 2f54681..2d8c884 100644
--- a/gcc/testsuite/jit.dg/jit.exp
+++ b/gcc/testsuite/jit.dg/jit.exp
@@ -202,37 +202,37 @@ proc fixed_host_execute {args} {
set timetol 0
exp_continue
}
- -re "^$prefix\tNOTE:${text}*" {
+ -re "^$prefix\tNOTE:\[^\r\n\]+\r\n" {
regsub "\[\n\r\t\]*NOTE: $text\r\n" $expect_out(0,string) "" output
- set output [string range $output 6 end]
+ set output [string range $output 6 end-2]
verbose "$output" 2
set timetol 0
exp_continue
}
- -re "^$prefix\tPASSED:${text}*" {
+ -re "^$prefix\tPASSED:\[^\r\n\]+\r\n" {
regsub "\[\n\r\t\]*PASSED: $text\r\n" $expect_out(0,string) "" output
- set output [string range $output 8 end]
+ set output [string range $output 8 end-2]
pass "$output"
set timetol 0
exp_continue
}
- -re "^$prefix\tFAILED:${text}*" {
+ -re "^$prefix\tFAILED:\[^\r\n\]+\r\n" {
regsub "\[\n\r\t\]*FAILED: $text\r\n" $expect_out(0,string) "" output
- set output [string range $output 8 end]
+ set output [string range $output 8 end-2]
fail "$output"
set timetol 0
exp_continue
}
- -re "^$prefix\tUNTESTED:${text}*" {
+ -re "^$prefix\tUNTESTED:\[^\r\n\]+\r\n" {
regsub "\[\n\r\t\]*TESTED: $text\r\n" $expect_out(0,string) "" output
- set output [string range $output 8 end]
+ set output [string range $output 8 end-2]
untested "$output"
set timetol 0
exp_continue
}
- -re "^$prefix\tUNRESOLVED:${text}*" {
+ -re "^$prefix\tUNRESOLVED:\[^\r\n\]+\r\n" {
regsub "\[\n\r\t\]*UNRESOLVED: $text\r\n" $expect_out(0,string) "" output
- set output [string range $output 8 end]
+ set output [string range $output 8 end-2]
unresolved "$output"
set timetol 0
exp_continue