[PATCH][dejagnu] truncate absolute file path into relative for dg-output

Marek Polacek polacek@redhat.com
Wed Nov 12 14:10:00 GMT 2014


On Tue, Nov 11, 2014 at 04:51:38PM +0000, Jiong Wang wrote:
> currently, only sanitizer tess (asan/tsan/ubsan) and a couple of fortran test will invoke dg-output.
> 
> pass x86-64 c/c++ regression.
> pass aarch64-none-linux-gnu c/c++ regression.

This patch broke a few tests in ubsan.exp.  The reason is that...

> diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
> index a0d1e7d..8168a77 100644
> --- a/gcc/testsuite/lib/gcc-dg.exp
> +++ b/gcc/testsuite/lib/gcc-dg.exp
> @@ -281,6 +281,8 @@ if { [info procs ${tool}_load] != [list] \
>  	    }
>  	    set result [list $status [lindex $result 1]]
>  	}
> +
> +	set result [list [lindex $result 0] [prune_gcc_output [lindex $result 1]]]

... prune_gcc_output prunes more than just absolute file paths, it
prunes even the "note: " messages.  And several ubsan tests have
/* { dg-output "\[^\n\r]*note: pointer points here\[^\n\r]*(\n|\r\n|\r)" } */
but since the note's are already gone, the test fails.

The following patch moves the path prunning code into a separate
procedure and fixes the failures.

Ok for trunk?

2014-11-12  Marek Polacek  <polacek@redhat.com>

	* lib/gcc-dg.exp (${tool}_load): Call prune_file_path instead
	of prune_gcc_output.
	* lib/prune.exp (prune_file_path): New procedure.

diff --git gcc/testsuite/lib/gcc-dg.exp gcc/testsuite/lib/gcc-dg.exp
index 8168a77..6df8ae1 100644
--- gcc/testsuite/lib/gcc-dg.exp
+++ gcc/testsuite/lib/gcc-dg.exp
@@ -282,7 +282,7 @@ if { [info procs ${tool}_load] != [list] \
 	    set result [list $status [lindex $result 1]]
 	}
 
-	set result [list [lindex $result 0] [prune_gcc_output [lindex $result 1]]]
+	set result [list [lindex $result 0] [prune_file_path [lindex $result 1]]]
 	return $result
     }
 }
diff --git gcc/testsuite/lib/prune.exp gcc/testsuite/lib/prune.exp
index 65028c2..df0e053 100644
--- gcc/testsuite/lib/prune.exp
+++ gcc/testsuite/lib/prune.exp
@@ -68,13 +68,19 @@ proc prune_gcc_output { text } {
     # Ignore harmless warnings from Xcode 4.0.
     regsub -all "(^|\n)\[^\n\]*ld: warning: could not create compact unwind for\[^\n\]*" $text "" text
 
+    #send_user "After:$text\n"
+
+    return $text
+}
+
+proc prune_file_path { text } {
+    global srcdir
+
     # Truncate absolute file path into relative path.
     set topdir "[file dirname [file dirname [file dirname $srcdir]]]"
     regsub -all "$srcdir\/" $text "" text
     regsub -all "$topdir\/" $text "" text
 
-    #send_user "After:$text\n"
-
     return $text
 }
 
	Marek



More information about the Gcc-patches mailing list