This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
XFAIL for GCC compat testsuite
- From: Eric Botcazou <ebotcazou at libertysurf dot fr>
- To: Janis Johnson <janis187 at us dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 13 Nov 2003 12:20:08 +0100
- Subject: 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"