Patchwork [testsuite] Avoid absolute paths in .sum files (PR testsuite/21164)

login
register
mail settings
Submitter Rainer Orth
Date April 11, 2011, 12:14 p.m.
Message ID <yddlizh0ytc.fsf@manam.CeBiTec.Uni-Bielefeld.DE>
Download mbox | patch
Permalink /patch/90590/
State New
Headers show

Comments

Rainer Orth - April 11, 2011, 12:14 p.m.
When comparing gcc testsuite results from two (slightly) different
source tree with dg-cmp-results.sh, I ran into an old issue: some
testsuites log absolute paths for either sources or executables,
rendering comparison difficult.  The libjava side of this problem was
logged as PR libgcj/21164, but the issue also occurs in lto.exp and
compat.exp.

This patch fixes this.

Bootstrapped without regressions on i386-pc-solaris2.11 and comparing
gcc.sum, g++.sum and libjava.sum.

Will install shortly unless someone objects.

	Rainer


2011-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	libjava:
	PR testsuite/21164
	* testsuite/lib/libjava.exp: Load dg.exp.
	* testsuite/libjava.jar/jar.exp (gcj_jar_interpret): Strip srcdir
	from jarfile.
	Use result for messages.
	* testsuite/libjava.loader/loader.exp (gcj_loader_test_one): Pass
	errname to libjava_invoke, fix testname.

	gcc:
	PR testsuite/21164
	* lib/compat.exp (compat-execute): Declare unsupported after
	stripping path from src1.
	* lib/lto.exp (lto-execute): Likewise.

Patch

diff --git a/gcc/testsuite/lib/compat.exp b/gcc/testsuite/lib/compat.exp
--- a/gcc/testsuite/lib/compat.exp
+++ b/gcc/testsuite/lib/compat.exp
@@ -1,4 +1,4 @@ 
-# Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008
+# Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2011
 # Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -260,13 +260,6 @@  proc compat-execute { src1 sid use_alt }
     set dg-do-what [list ${dg-do-what-default} "" P]
     set extra_flags_1 [compat-get-options-main $src1]
 
-    # Check whether this test is supported for this target.
-    if { [lindex ${dg-do-what} 1 ] == "N" } {
-	unsupported "$src1"
-	verbose "$src1 not supported on this target, skipping it" 3
-	return
-    }
-
     # Set up the names of the other source files.
     set dir [file dirname $src1]
     set ext [file extension $src1]
@@ -314,10 +307,6 @@  proc compat-execute { src1 sid use_alt }
 	set testcase [string range "$testcase" [string length "$tmpdir/"] end]
 	set testcase "tmpdir-$testcase"
     }
-    regsub "_main.*" $testcase "" testcase
-    # Set up the base name of executable files so they'll be unique.
-    regsub -all "\[./\]" $testcase "-" execbase
-
     # If we couldn't rip $srcdir out of `src1' then just do the best we can.
     # The point is to reduce the unnecessary noise in the logs.  Don't strip
     # out too much because different testcases with the same name can confuse
@@ -326,6 +315,17 @@  proc compat-execute { src1 sid use_alt }
         set testcase "[file tail [file dirname $src1]]/[file tail $src1]"
     }
 
+    # Check whether this test is supported for this target.
+    if { [lindex ${dg-do-what} 1 ] == "N" } {
+	unsupported "$testcase"
+	verbose "$testcase not supported on this target, skipping it" 3
+	return
+    }
+
+    regsub "_main.*" $testcase "" testcase
+    # Set up the base name of executable files so they'll be unique.
+    regsub -all "\[./\]" $testcase "-" execbase
+
     # Loop through all of the option lists used for this test.
 
     set count 0
diff --git a/gcc/testsuite/lib/lto.exp b/gcc/testsuite/lib/lto.exp
--- a/gcc/testsuite/lib/lto.exp
+++ b/gcc/testsuite/lib/lto.exp
@@ -410,13 +410,6 @@  proc lto-execute { src1 sid } {
 	set lto_option_list $LTO_OPTIONS
     }
 
-    # Check whether this test is supported for this target.
-    if { [lindex ${dg-do-what} 1 ] == "N" } {
-	unsupported "$src1"
-	verbose "$src1 not supported on this target, skipping it" 3
-	return
-    }
-
     # Set up the names of the other source files.
     set dir [file dirname $src1]
     set base [file rootname $src1]
@@ -470,11 +463,6 @@  proc lto-execute { src1 sid } {
 	set testcase [string range "$testcase" [string length "$tmpdir/"] end]
 	set testcase "tmpdir-$testcase"
     }
-    regsub "_0.*" $testcase "" testcase
-
-    # Set up the base name of executable files so they'll be unique.
-    regsub -all "\[./\]" $testcase "-" execbase
-
     # If we couldn't rip $srcdir out of `src1' then just do the best we can.
     # The point is to reduce the unnecessary noise in the logs.  Don't strip
     # out too much because different testcases with the same name can confuse
@@ -483,6 +471,18 @@  proc lto-execute { src1 sid } {
         set testcase "[file tail [file dirname $src1]]/[file tail $src1]"
     }
 
+    # Check whether this test is supported for this target.
+    if { [lindex ${dg-do-what} 1 ] == "N" } {
+	unsupported "$testcase"
+	verbose "$testcase not supported on this target, skipping it" 3
+	return
+    }
+
+    regsub "_0.*" $testcase "" testcase
+
+    # Set up the base name of executable files so they'll be unique.
+    regsub -all "\[./\]" $testcase "-" execbase
+
     # Loop through all of the option lists used for this test.
     set count 0
     foreach option $lto_option_list {
diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp
--- a/libjava/testsuite/lib/libjava.exp
+++ b/libjava/testsuite/lib/libjava.exp
@@ -1,4 +1,5 @@ 
-# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2011
+# Free Software Foundation
 
 proc load_gcc_lib { filename } {
     global srcdir
@@ -6,6 +7,7 @@  proc load_gcc_lib { filename } {
 }
 
 load_lib libgloss.exp
+load_lib dg.exp
 load_gcc_lib target-libpath.exp
 
 # GCJ_UNDER_TEST is the compiler under test.
diff --git a/libjava/testsuite/libjava.jar/jar.exp b/libjava/testsuite/libjava.jar/jar.exp
--- a/libjava/testsuite/libjava.jar/jar.exp
+++ b/libjava/testsuite/libjava.jar/jar.exp
@@ -20,17 +20,18 @@  proc gcj_jar_interpret {jarfile} {
   global INTERPRETER srcdir
 
   set gij [libjava_find_gij]
+  set errname [dg-trim-dirname $srcdir $jarfile]
   # libjava_find_gij will return "" if it couldn't find the
   # program; in this case we want to skip the test.
   if {$INTERPRETER != "yes" || $gij == ""} {
-    untested "$jarfile execution - gij test"
-    untested "$jarfile output - gij test"
+    untested "$errname execution - gij test"
+    untested "$errname output - gij test"
     return
   }
 
   set opts(_) {}
   set out [file rootname $jarfile].out
-  libjava_invoke $jarfile "gij test" opts $gij {} $out \
+  libjava_invoke $errname "gij test" opts $gij {} $out \
       "" -jar $jarfile
 }
 
diff --git a/libjava/testsuite/libjava.loader/loader.exp b/libjava/testsuite/libjava.loader/loader.exp
--- a/libjava/testsuite/libjava.loader/loader.exp
+++ b/libjava/testsuite/libjava.loader/loader.exp
@@ -34,7 +34,7 @@  proc gcj_loader_test_one {srcfile} {
     }
     pass "$errname compilation from source"
 
-    libjava_invoke $executable $executable "" $executable "" $resfile ""
+    libjava_invoke $errname "source compiled test" "" $executable "" $resfile ""
 
   return 1
 }