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]

XFAIL for GCC compat testsuite


Hi Janis,

I've added the possibility to XFAIL your compat testcases on compilation in 
my tree (for the SPARC port), using the new dg-xfail-if infrastructure.

Tested on i586-redhat-linux-gnu, sparc64-sun-solaris2.9 and 
sparc-sun-solaris2.8. Ok for mainline?


2003-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* lib/compat.exp (compat-obj): New xfaildata parameter.
	Use it to set compiler_conditional_xfail_data before compiling.
	(compat-get-options): Handle dg-xfail-if.
	(compat-execute): Retrieve XFAIL data and pass them to compat-obj.
	* gcc.dg/compat/vector-1_x.c: XFAIL on SPARC.
	* gcc.dg/compat/vector-1_y.c: Likewise.
	* gcc.dg/compat/vector-2_x.c: Likewise.
	* gcc.dg/compat/vector-2_y.c: Likewise.


-- 
Eric Botcazou
Index: lib/compat.exp
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/lib/compat.exp,v
retrieving revision 1.6
diff -u -r1.6 compat.exp
--- lib/compat.exp	21 Jul 2003 21:24:26 -0000	1.6
+++ lib/compat.exp	12 Nov 2003 17:04:48 -0000
@@ -50,6 +50,7 @@
 set option_list $COMPAT_OPTIONS
 
 load_lib dg.exp
+load_lib gcc-dg.exp
 
 #
 # compat-obj -- compile to an object file
@@ -59,15 +60,18 @@
 # OPTALL is the list of compiler options to use with all tests
 # OPTFILE is the list of compiler options to use with this file
 # OPTSTR is the options to print with test messages
+# XFAILDATA is the xfail data to be passed to the compiler
 #
-proc compat-obj { source dest optall optfile optstr } {
+proc compat-obj { source dest optall optfile optstr xfaildata } {
     global testcase
     global tool
+    global compiler_conditional_xfail_data
 
     # Set up the options for compiling this file.
     set options ""
     lappend options "additional_flags=$optfile $optall"
 
+    set compiler_conditional_xfail_data $xfaildata
     set comp_output [${tool}_target_compile "$source" "$dest" object $options]
     ${tool}_check_compile "$testcase $dest compile" $optstr $dest $comp_output
 }
@@ -120,7 +124,7 @@
 }
 
 #
-# compat-flags -- get special tool flags to use for a source file
+# compat-get-options -- get special tool flags to use for a source file
 #
 # SRC is the full patchname of the source file.
 # The result is a list of options to use.
@@ -138,10 +142,15 @@
 
     # dg-options sets a variable called dg-extra-tool-flags.
     set dg-extra-tool-flags ""
+
+    # dg-xfail-if sets compiler_conditional_xfail_data.
+    global compiler_conditional_xfail_data
+    set compiler_conditional_xfail_data ""
+
     set tmp [dg-get-options $src]
     foreach op $tmp {
 	set cmd [lindex $op 0]
-	if ![string compare "dg-options" $cmd] {
+	if { ![string compare "dg-options" $cmd] || ![string compare "dg-xfail-if" $cmd] } {
 	    set status [catch "$op" errmsg]
 	    if { $status != 0 } {
 		perror "src: $errmsg for \"$op\"\n"
@@ -176,6 +185,7 @@
     global verbose
     global testcase
     global gluefile
+    global compiler_conditional_xfail_data
 
     # Set up the names of the other source files.
     regsub "_main.*" $src1 "" base
@@ -188,7 +198,9 @@
     # extra flags in *_main.* are also used for linking.
     set extra_flags_1 [compat-get-options $src1]
     set extra_flags_2 [compat-get-options $src2]
+    set compile_xfail_2 $compiler_conditional_xfail_data
     set extra_flags_3 [compat-get-options $src3]
+    set compile_xfail_3 $compiler_conditional_xfail_data
 
     # Define the names of the object files.
     regsub "sid" "sid_main_tst.o" $sid obj1
@@ -243,15 +255,15 @@
 	# later.  Skip this if we don't have an alternate compiler.
 	if { $use_alt != 0 } then {
 	    compat-use-alt-compiler
-	    compat-obj "$src2" "$obj2_alt" $alt_option $extra_flags_2 $optstr
-	    compat-obj "$src3" "$obj3_alt" $alt_option $extra_flags_3 $optstr
+	    compat-obj "$src2" "$obj2_alt" $alt_option $extra_flags_2 $optstr $compile_xfail_2
+	    compat-obj "$src3" "$obj3_alt" $alt_option $extra_flags_3 $optstr $compile_xfail_3
 	}
 
 	# Compile pieces with the compiler under test.
 	compat-use-tst-compiler
-	compat-obj "$src1" "$obj1" $tst_option $extra_flags_1 $optstr
-	compat-obj "$src2" "$obj2_tst" $tst_option $extra_flags_2 $optstr
-	compat-obj "$src3" "$obj3_tst" $tst_option $extra_flags_3 $optstr
+	compat-obj "$src1" "$obj1" $tst_option $extra_flags_1 $optstr ""
+	compat-obj "$src2" "$obj2_tst" $tst_option $extra_flags_2 $optstr $compile_xfail_2
+	compat-obj "$src3" "$obj3_tst" $tst_option $extra_flags_3 $optstr $compile_xfail_3
 
 	# Link (using the compiler under test), run, and clean up tests.
 	compat-run "${obj2_tst}-${obj3_tst}" \
Index: gcc.dg/compat/vector-1_x.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/testsuite/gcc.dg/compat/vector-1_x.c,v
retrieving revision 1.2
diff -u -r1.2 vector-1_x.c
--- gcc.dg/compat/vector-1_x.c	25 Aug 2003 23:56:32 -0000	1.2
+++ gcc.dg/compat/vector-1_x.c	24 Oct 2003 06:27:35 -0000
@@ -1,4 +1,5 @@
 /* { dg-options "-w" } */
+/* { dg-xfail-if "PR target/12916" "sparc*-*-*" "*" "" } */
 
 #include "compat-common.h"
 #include "vector-defs.h"
Index: gcc.dg/compat/vector-1_y.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/testsuite/gcc.dg/compat/vector-1_y.c,v
retrieving revision 1.2
diff -u -r1.2 vector-1_y.c
--- gcc.dg/compat/vector-1_y.c	25 Aug 2003 23:56:32 -0000	1.2
+++ gcc.dg/compat/vector-1_y.c	24 Oct 2003 06:27:35 -0000
@@ -1,4 +1,5 @@
 /* { dg-options "-w" } */
+/* { dg-xfail-if "PR target/12916" "sparc*-*-*" "*" "" } */
 
 #include "compat-common.h"
 #include "vector-defs.h"
Index: gcc.dg/compat/vector-2_x.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/testsuite/gcc.dg/compat/vector-2_x.c,v
retrieving revision 1.2
diff -u -r1.2 vector-2_x.c
--- gcc.dg/compat/vector-2_x.c	25 Aug 2003 23:56:32 -0000	1.2
+++ gcc.dg/compat/vector-2_x.c	24 Oct 2003 06:27:35 -0000
@@ -1,4 +1,5 @@
 /* { dg-options "-w" } */
+/* { dg-xfail-if "PR target/12916" "sparc*-*-*" "*" "" } */
 
 #include "compat-common.h"
 #include "vector-defs.h"
Index: gcc.dg/compat/vector-2_y.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/testsuite/gcc.dg/compat/vector-2_y.c,v
retrieving revision 1.2
diff -u -r1.2 vector-2_y.c
--- gcc.dg/compat/vector-2_y.c	25 Aug 2003 23:56:32 -0000	1.2
+++ gcc.dg/compat/vector-2_y.c	24 Oct 2003 06:27:35 -0000
@@ -1,4 +1,5 @@
 /* { dg-options "-w" } */
+/* { dg-xfail-if "PR target/12916" "sparc*-*-*" "*" "" } */
 
 #include "compat-common.h"
 #include "vector-defs.h"

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