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]

[testsuite] document dg-do xfail limitation, modify several tests


DejaGnu ignores an xfail clause for dg-do preprocess/compile/assemble/link.
This patch documents that fact and suggests using dg-xfail-if instead.
It also modifies tests that use this construct to use dg-xfail-if.

I tested the patch on powerpc64-linux, but only one of the modified tests
is meant to xfail for that target and I didn't test them on the other
targets for which these tests are expected to fail.  Since the xfail
clause has been ignored, some of these tests might no longer need it and
start reporting XPASS.  Any changes to remove the dg-xfail-if directives
added by this patch are pre-approved, but first I'll wait a day or two
before checking this in so people can test it on the affected targets if
they want, to let me fix them first.  Affected targets are:

  arm-*-pe
  c4x-*-*
  h8300-*-*
  i386-pc-solaris*
  m6811-*-*
  m6812-*-*
  sparc64-*-elf
  xstormy16-*-*

2007-10-30  Janis Johnson  <janis187@us.ibm.com>

gcc/
	PR testsuite/25352
	* doc/sourcebuild.texi (Test Directives): Document that xfail
	has no effect for dg-do except when dg-do-what is "run".

libstdc++-v3/testsuite/
	PR testsuite/25352
	* 26_numerics/headers/cmath/c99_classification_macros_c.cc: Remove
	xfail from dg-do and add dg-skip-if.

gcc/testsuite/
	PR testsuite/25352
	* gcc.c-torture/compile/20000804-1.c: Remove xfail from dg-do and
	add dg-skip-if.
	* gcc.c-torture/compile/20001205-1.c: Ditto.
	* gcc.c-torture/compile/20001226-1.c: Ditto.
	* gcc.c-torture/compile/20020312-1.c: Ditto.
	* gcc.c-torture/compile/20020604-1.c: Ditto.
	* gcc.c-torture/compile/920501-12.c: Ditto.
	* gcc.c-torture/compile/920501-4.c: Ditto.
	* gcc.c-torture/compile/920520-1.c: Ditto.
	* gcc.c-torture/compile/980506-1.c: Ditto.
	* gcc.c-torture/compile/990617-1.c: Ditto.
	* gcc.dg/compare6.c: Ditto.
	* g++.old-deja/g++.brendan/crash43.C: Ditto.
	* g++.old-deja/g++.brendan/synth1.C: Ditto.
	* g++.old-deja/g++.oliva/dwarf2.C: Ditto.
	* g++.old-deja/g++.oliva/dwarf3.C: Ditto.
	* g++.old-deja/g++.pt/static6.C: Ditto.
	* g++.old-deja/g++.pt/crash16.C: Ditto.
	* g++.old-deja/g++.mike/p10416.C: Ditto.
	* g++.old-deja/g++.mike/ns15.C: Ditto.
	* g++.old-deja/g++.mike/eh46.C: Ditto.

Index: gcc/doc/sourcebuild.texi
===================================================================
--- gcc/doc/sourcebuild.texi	(revision 129777)
+++ gcc/doc/sourcebuild.texi	(working copy)
@@ -963,10 +963,11 @@
 then the test is skipped unless the target system is included in the
 list of target triplets or matches the effective-target keyword.
 
-If the directive includes the optional @samp{@{ xfail @var{selector} @}}
-and the selector is met then the test is expected to fail.  For
-@code{dg-do run}, execution is expected to fail but compilation
-is expected to pass.
+If @samp{do-what-keyword} is @code{run} and the directive includes
+the optional @samp{@{ xfail @var{selector} @}} and the selector is met
+then the test is expected to fail.  The @code{xfail} clause is ignored
+for other values of @samp{do-what-keyword}; those tests can use
+directive @code{dg-xfail-if}.
 
 @item @{ dg-options @var{options} [@{ target @var{selector} @}] @}
 This DejaGnu directive provides a list of compiler options, to be used
Index: gcc/testsuite/gcc.c-torture/compile/20000804-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/20000804-1.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/20000804-1.c	(working copy)
@@ -1,9 +1,10 @@
 /* This does not work on m68hc11 or h8300 due to the use of an asm
    statement to force a 'long long' (64-bits) to go in a register.  */
-/* { dg-do assemble { xfail m6811-*-* m6812-*-* h8300-*-* } } */
+/* { dg-do assemble } */
 /* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */
 /* { dg-skip-if "PIC default" { i?86-*-darwin* } { "*" } { "" } } */
 /* { dg-skip-if "No 64-bit registers" { m32c-*-* } { "*" } { "" } } */
+/* { dg-xfail-if "" { m6811-*-* m6812-*-* h8300-*-* } { "*" } { "" } } */
 
 /* Copyright (C) 2000, 2003 Free Software Foundation */
 __complex__ long long f ()
Index: gcc/testsuite/gcc.c-torture/compile/920520-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/920520-1.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/920520-1.c	(working copy)
@@ -1,3 +1,4 @@
-/* { dg-do compile { xfail m6811-*-* m6812-*-* } } */
+/* { dg-do compile } */
+/* { dg-xfail-if "" { m6811-*-* m6812-*-* } { "*" } { "" } } */
 
 f(){asm("%0"::"r"(1.5F));}g(){asm("%0"::"r"(1.5));}
Index: gcc/testsuite/gcc.c-torture/compile/920501-4.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/920501-4.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/920501-4.c	(working copy)
@@ -1,6 +1,7 @@
 /* This test fails on HC11/HC12 when it is compiled without -mshort because 
    the 'r0' array is too large.  Force to use 16-bit ints for it.  */
-/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
+/* { dg-do assemble } */
+/* { dg-xfail-if "" { m6811-*-* m6812-*-* } { "*" } { "-mshort" } } */
 
 foo ()
 {
Index: gcc/testsuite/gcc.c-torture/compile/20020604-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/20020604-1.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/20020604-1.c	(working copy)
@@ -1,6 +1,6 @@
-/* The array is too big. */
+/* { dg-do assemble } */
+/* { dg-xfail-if "The array is too big" { "m6811-*-* m6812-*-*" } { "*" } { "" } } */
 /* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
-/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
 /* { dg-skip-if "" { m32c-*-* } { } { } } */
 
 /* PR c/6957
Index: gcc/testsuite/gcc.c-torture/compile/20001205-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/20001205-1.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/20001205-1.c	(working copy)
@@ -1,6 +1,7 @@
 /* This does not work on m68hc11 due to the asm statement which forces
    two 'long' (32-bits) variables to go in registers.  */
-/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
+/* { dg-do assemble } */
+/* { dg-xfail-if "" { m6811-*-* m6812-*-* } { "*" } { "" } } */
 
 static inline unsigned long rdfpcr(void)
 {
Index: gcc/testsuite/gcc.c-torture/compile/920501-12.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/920501-12.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/920501-12.c	(working copy)
@@ -1,6 +1,7 @@
 /* This test fails on HC11/HC12 when it is compiled without -mshort because 
    the stack arrays are too large.  Force to use 16-bit ints for it.  */
-/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
+/* { dg-do assemble } */
+/* { dg-xfail-if "" { m6811-*-* m6812-*-* } { "*" } { "-mshort" } } */
 
 x(x){            return 3 + x;}
 a(x){int y[994]; return 3 + x;}
Index: gcc/testsuite/gcc.c-torture/compile/20020312-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/20020312-1.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/20020312-1.c	(working copy)
@@ -1,6 +1,7 @@
 /* This does not compile on HC11/HC12 due to the asm which requires
    two 32-bit registers.  */
-/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
+/* { dg-do assemble } */
+/* { dg-xfail-if "" { m6811-*-* m6812-*-* } { "*" } { "" } } */
 
 /* PR optimization/5892 */
 typedef struct { unsigned long a; unsigned int b, c; } A;
Index: gcc/testsuite/gcc.c-torture/compile/20001226-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/20001226-1.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/20001226-1.c	(working copy)
@@ -1,7 +1,8 @@
 /* This does not assemble on m68hc11 because the function is larger
    than 64K.  */
-/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
-/* { dg-xfail-if "jump beyond 128K not supported" "xtensa-*-*" "-O0" "" } */
+/* { dg-do assemble } */
+/* { dg-xfail-if "function larger than 64K" { m6811-*-* } { "*" } { "" } } */
+/* { dg-xfail-if "jump beyond 128K not supported" { xtensa-*-* } { "-O0" } { "" } } */
 /* { dg-skip-if "" { m32c-*-* } { "*" } { "" } } */
 
 /* This testcase exposed two branch shortening bugs on powerpc.  */
Index: gcc/testsuite/gcc.c-torture/compile/990617-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/990617-1.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/990617-1.c	(working copy)
@@ -1,6 +1,7 @@
 /* 0x70000000 is too large a constant to become a pointer on
    xstormy16. */
-/* { dg-do assemble { xfail xstormy16-*-* } } */
+/* { dg-do assemble } */
+/* { dg-xfail-if "" { xstormy16-*-* } { "*" } { "" } } */
 
 int main()
 {
Index: gcc/testsuite/gcc.c-torture/compile/980506-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/980506-1.c	(revision 129777)
+++ gcc/testsuite/gcc.c-torture/compile/980506-1.c	(working copy)
@@ -1,7 +1,8 @@
 /* The arrays are too large for the xstormy16 - won't fit in 16 bits. */
-/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
-/* { dg-do assemble { xfail xstormy16-*-* m6811-*-* m6812-*-* } } */
+/* { dg-do assemble } */
 /* { dg-require-effective-target size32plus } */
+/* { dg-xfail-if "The array too big" { m6811-*-* m6812-*-* } { "*" } { "" } } /*
+/* { dg-xfail-if "The array too big" { h8300-*-* } { "-mno-h" "-mn" } { "" } } */
 
 unsigned char	TIFFFax2DMode[20][256];
 unsigned char	TIFFFax2DNextState[20][256];
Index: gcc/testsuite/gcc.dg/compare6.c
===================================================================
--- gcc/testsuite/gcc.dg/compare6.c	(revision 129777)
+++ gcc/testsuite/gcc.dg/compare6.c	(working copy)
@@ -1,6 +1,7 @@
 /* PR c/2098 */
 /* Test for a warning on comparison on out-of-range data.  */
-/* { dg-do compile { xfail c4x-*-* } } */
+/* { dg-do compile } */
+/* { dg-xfail-if "" { c4x-*-* } { "*" } { "" } } */
 /* { dg-options "-Wtype-limits" } */
 
 signed char sc;
Index: gcc/testsuite/g++.old-deja/g++.brendan/crash43.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.brendan/crash43.C	(revision 129777)
+++ gcc/testsuite/g++.old-deja/g++.brendan/crash43.C	(working copy)
@@ -1,4 +1,5 @@
-// { dg-do assemble { xfail sparc64-*-elf } }
+// { dg-do assemble }
+// { dg-xfail-if "" { sparc64-*-elf } { "*" } { "" } }
 // { dg-options "-g" }
 // GROUPS passed old-abort
 extern "C" { typedef int jmp_buf[12]; }
Index: gcc/testsuite/g++.old-deja/g++.brendan/synth1.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.brendan/synth1.C	(revision 129777)
+++ gcc/testsuite/g++.old-deja/g++.brendan/synth1.C	(working copy)
@@ -1,4 +1,5 @@
-// { dg-do assemble { xfail sparc64-*-elf } }
+// { dg-do assemble }
+// { dg-xfail-if "" { sparc64-*-elf } { "*" } { "" } }
 // { dg-options "-pedantic-errors -g -Wall" }
 // GROUPS passed synthetics
 // Check to make sure that g++ doesn't get freaked out about the use
Index: gcc/testsuite/g++.old-deja/g++.oliva/dwarf2.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.oliva/dwarf2.C	(revision 129777)
+++ gcc/testsuite/g++.old-deja/g++.oliva/dwarf2.C	(working copy)
@@ -1,4 +1,5 @@
-// { dg-do assemble { xfail i386-pc-solaris* } }
+// { dg-do assemble }
+// { dg-xfail-if "" { i386-pc-solaris* } { "*" } { "" } }
 
 // Copyright (C) 1999 Free Software Foundation
 
Index: gcc/testsuite/g++.old-deja/g++.oliva/dwarf3.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.oliva/dwarf3.C	(revision 129777)
+++ gcc/testsuite/g++.old-deja/g++.oliva/dwarf3.C	(working copy)
@@ -1,4 +1,5 @@
-// { dg-do assemble { xfail i386-pc-solaris* } }
+// { dg-do assemble }
+// { dg-xfail-if "" { i386-pc-solaris* } { "*" } { "" } }
 
 // Copyright (C) 1999 Free Software Foundation
 
Index: gcc/testsuite/g++.old-deja/g++.pt/static6.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.pt/static6.C	(revision 129777)
+++ gcc/testsuite/g++.old-deja/g++.pt/static6.C	(working copy)
@@ -1,4 +1,5 @@
-// { dg-do link { xfail *-*-aout *-*-coff *-*-hpux* *-*-hms } }
+// { dg-do link }
+// { dg-xfail-if "" { *-*-aout *-*-coff *-*-hpux* *-*-hms } { "*" } { "" } }
 
 // Simplified from testcase by Erez Louidor Lior <s3824888@techst02.technion.ac.il>
 
Index: gcc/testsuite/g++.old-deja/g++.pt/crash16.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.pt/crash16.C	(revision 129777)
+++ gcc/testsuite/g++.old-deja/g++.pt/crash16.C	(working copy)
@@ -1,4 +1,5 @@
-// { dg-do assemble { xfail xstormy16-*-* } }
+// { dg-do assemble }
+// { dg-xfail-if "" { xstormy16-*-* } { "*" } { "" } }
 // { dg-options "" }
 
 extern "C" void qsort(void *base, __SIZE_TYPE__ nmemb, __SIZE_TYPE__ size,
Index: gcc/testsuite/g++.old-deja/g++.mike/p10416.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.mike/p10416.C	(revision 129777)
+++ gcc/testsuite/g++.old-deja/g++.mike/p10416.C	(working copy)
@@ -1,4 +1,5 @@
-// { dg-do assemble { xfail sparc64-*-elf arm-*-pe } }
+// { dg-do assemble }
+// { dg-xfail-if "" { sparc64-*-elf arm-*-pe } { "*" } { "" } }
 // { dg-options "-fexceptions" }
 // prms-id: 10416
 
Index: gcc/testsuite/g++.old-deja/g++.mike/ns15.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.mike/ns15.C	(revision 129777)
+++ gcc/testsuite/g++.old-deja/g++.mike/ns15.C	(working copy)
@@ -1,4 +1,5 @@
-// { dg-do assemble { xfail xstormy16-*-* } }
+// { dg-do assemble }
+// { dg-xfail-if "" { xstormy16-*-* } { "*" } { "" } }
 
 #include <stdio.h>
 #include <stdlib.h>
Index: gcc/testsuite/g++.old-deja/g++.mike/eh46.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.mike/eh46.C	(revision 129777)
+++ gcc/testsuite/g++.old-deja/g++.mike/eh46.C	(working copy)
@@ -1,4 +1,5 @@
-// { dg-do assemble { xfail arm-*-pe } }
+// { dg-do assemble }
+// { dg-xfail-if "" { arm-*-pe } { "*" } { "" } }
 // { dg-options "-fexceptions" }
 
 int atoi(const char *);
Index: libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
===================================================================
--- libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc	(revision 129777)
+++ libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc	(working copy)
@@ -27,7 +27,8 @@
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
-// { dg-do compile { xfail { { *-*-linux* *-*-darwin* } || { uclibc || newlib } } } }
+// { dg-do compile }
+// { dg-xfail-if "" { { *-*-linux* *-*-darwin* } || { uclibc || newlib } } { "*" } { "" } }
 // { dg-excess-errors "" { target { { *-*-linux* *-*-darwin* } || { uclibc || newlib } } } }
 
 #include <math.h>



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