This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] submitted: cleanup to testsuite/lib/gcc-dg.exp


This patch simplifies clearing xfail flags for a test that is skipped so
those flags don't apply to the next test that is run.  Tested by running
the entire testsuite with -m32/-m64 on powerpc64-unknown-linux-gnu and
with some private test directive tests (an earlier version was proposed
for addition to contrib/).  I've checked it in for mainline.

2005-01-24  Janis Johnson  <janis187@us.ibm.com>

	* lib/gcc-dg.exp (skip_test_and_clear_xfail): Remove.
	(dg-require-weak, dg-require-visibility, dg-require-alias,
	dg-require-dg-sections, dg-require-profiling, dg-require-iconv,
	dg-require-effective-target, dg-skip-if): Remove call to
	skip_test_and_clear_xfail.
	(dg-test): Clear xfail data.
	
Index: gcc/testsuite/lib/gcc-dg.exp
===================================================================
RCS file: /opt/gcc-cvs/gcc/gcc/testsuite/lib/gcc-dg.exp,v
retrieving revision 1.47
diff -u -p -r1.47 gcc-dg.exp
--- gcc/testsuite/lib/gcc-dg.exp	22 Dec 2004 17:51:01 -0000	1.47
+++ gcc/testsuite/lib/gcc-dg.exp	13 Jan 2005 00:26:36 -0000
@@ -298,20 +298,6 @@ proc gcc-dg-debug-runtest { target_compi
     }
 }
 
-# Skip a test and clear all xfail flags that might have been set for it
-# by dg-xfail-if or for the xfail list in dg-do.  A procedure that calls
-# this must specify "upvar dg-do-what dg-do-what".
-
-proc skip_test_and_clear_xfail { } {
-    global compiler_conditional_xfail_data
-    upvar dg-do-what dg-do-what
-
-    set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
-    if [info exists compiler_conditional_xfail_data] {
-	unset compiler_conditional_xfail_data
-    }
-}
-
 # If this target does not support weak symbols, skip this test.
 
 proc dg-require-weak { args } {
@@ -322,7 +308,7 @@ proc dg-require-weak { args } {
     }
     if { $weak_available != 1 } {
 	upvar dg-do-what dg-do-what
-	skip_test_and_clear_xfail
+	set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
     }
 }
 
@@ -337,7 +323,7 @@ proc dg-require-visibility { args } {
     }
     if { $visibility_available != 1 } {
 	upvar dg-do-what dg-do-what
-	skip_test_and_clear_xfail
+	set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
     }
 }
 
@@ -352,7 +338,7 @@ proc dg-require-alias { args } {
     }
     if { $alias_available < 2 } {
 	upvar dg-do-what dg-do-what
-	skip_test_and_clear_xfail
+	set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
     }
 }
 
@@ -362,7 +348,7 @@ proc dg-require-alias { args } {
 proc dg-require-gc-sections { args } {
     if { ![ check_gc_sections_available ] } {
 	upvar dg-do-what dg-do-what
-	skip_test_and_clear_xfail
+	set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
     }
 }
 
@@ -371,7 +357,7 @@ proc dg-require-gc-sections { args } {
 proc dg-require-profiling { args } {
     if { ![ check_profiling_available ${args} ] } {
 	upvar dg-do-what dg-do-what
-	skip_test_and_clear_xfail
+	set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
     }
 }
 
@@ -391,13 +377,13 @@ proc dg-require-dll { args } {
     }
 
     upvar dg-do-what dg-do-what
-    skip_test_and_clear_xfail
+    set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
 }
 
 proc dg-require-iconv { args } {
     if { ![ check_iconv_available ${args} ] } {
 	upvar dg-do-what dg-do-what
-	skip_test_and_clear_xfail
+        set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
     }
 }
 
@@ -406,7 +392,7 @@ proc dg-require-iconv { args } {
 proc dg-require-named-sections { args } {
     if { ![ check_named_sections_available ] } {
 	upvar dg-do-what dg-do-what
-	skip_test_and_clear_xfail
+        set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
     }
 }
 
@@ -416,7 +402,7 @@ proc dg-require-effective-target { args 
     set args [lreplace $args 0 0]
     if { ![is-effective-target [lindex $args 0]] } {
 	upvar dg-do-what dg-do-what
-	skip_test_and_clear_xfail
+        set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
     }
 }
 
@@ -455,7 +441,7 @@ proc dg-skip-if { args } {
 	# the original list with "*-*-*".
 	if [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]] {
 	    upvar dg-do-what dg-do-what
-	    skip_test_and_clear_xfail
+            set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
 	}
 
 	# Any value in this variable was left over from an earlier test.
@@ -508,17 +494,24 @@ if { [info procs saved-dg-test] == [list
 	global additional_sources
 	global additional_prunes
 	global errorInfo
+	global compiler_conditional_xfail_data
 
 	if { [ catch { eval saved-dg-test $args } errmsg ] } {
 	    set saved_info $errorInfo
 	    set additional_files ""
 	    set additional_sources ""
 	    set additional_prunes ""
+	    if [info exists compiler_conditional_xfail_data] {
+		unset compiler_conditional_xfail_data
+	    }
 	    error $errmsg $saved_info
 	}
 	set additional_files ""
 	set additional_sources ""
 	set additional_prunes ""
+	if [info exists compiler_conditional_xfail_data] {
+	    unset compiler_conditional_xfail_data
+	}
     }
 }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]