[gcc(refs/users/guojiufu/heads/personal-branch)] jit: Fix truncation of testsuite output [PR69435]

Jiu Fu Guo guojiufu@gcc.gnu.org
Mon Aug 10 07:12:20 GMT 2020


https://gcc.gnu.org/g:8764e9a3fc43f1117db77d1f056b6c3f15a29db3

commit 8764e9a3fc43f1117db77d1f056b6c3f15a29db3
Author: Alex Coplan <alex.coplan@arm.com>
Date:   Mon Jul 20 16:15:29 2020 +0100

    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.

Diff:
---
 gcc/testsuite/jit.dg/jit.exp | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/gcc/testsuite/jit.dg/jit.exp b/gcc/testsuite/jit.dg/jit.exp
index 2f54681713b..2d8c884b6b8 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


More information about the Gcc-cvs mailing list