diff mbox

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

Message ID 20141112140903.GI29791@redhat.com
State New
Headers show

Commit Message

Marek Polacek Nov. 12, 2014, 2:09 p.m. UTC
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.

	Marek

Comments

Jiong Wang Nov. 12, 2014, 2:37 p.m. UTC | #1
On 12/11/14 14:09, Marek Polacek wrote:

>
> ... 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.

thanks, this make sense, and LGTM.

(my fault, my test diff base must be wrong...)

>
> 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
>
>
>
Mike Stump Nov. 12, 2014, 6:33 p.m. UTC | #2
On Nov 12, 2014, at 6:09 AM, Marek Polacek <polacek@redhat.com> wrote:
> The following patch moves the path prunning code into a separate
> procedure and fixes the failures.
> 
> Ok for trunk?

Ok.
diff mbox

Patch

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
 }