Commit 00a25a2d by Janis Johnson Committed by Janis Johnson

sourcebuild.texi (Test Directives): Add dg-xfail-run-if.

gcc/
	* doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
gcc/testsuite/
	* lib/target-supports-dg.exp (dg-xfail-run-if): New.
	* gcc.test-framework/dg-do-run-xrif-exp-F.c: New test.
	* gcc.test-framework/dg-do-run-xrif-exp-P.c: New test.
	* gcc.test-framework/dg-do-run-xrif-exp-XF.c: New test.
	* gcc.test-framework/dg-do-run-xrif-exp-XP.c: New test.
	* gcc.test-framework/dg-dot-run-xrif-exp-F.c: New test.
	* gcc.test-framework/dg-dot-run-xrif-exp-P.c: New test.
	* gcc.test-framework/dg-dot-run-xrif-exp-XF.c: New test.
	* gcc.test-framework/dg-dot-run-xrif-exp-XP.c: New test.
	* gcc.test-framework/test-framework.awk: Handle new tests.

From-SVN: r135729
parent 80980aec
2008-05-21 Janis Johnson <janis187@us.ibm.com>
* doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/sse.md (vec_extractv4sf): Removed.
......
......@@ -1004,7 +1004,11 @@ an empty @var{exclude-opts} list.
@item @{ dg-xfail-if @var{comment} @{ @var{selector} @} @{ @var{include-opts} @} @{ @var{exclude-opts} @} @}
Expect the test to fail if the conditions (which are the same as for
@code{dg-skip-if}) are met.
@code{dg-skip-if}) are met. This does not affect the execute step.
@item @{ dg-xfail-run-if @var{comment} @{ @var{selector} @} @{ @var{include-opts} @} @{ @var{exclude-opts} @} @}
Expect the execute step of a test to fail if the conditions (which are
the same as for @code{dg-skip-if}) and @code{dg-xfail-if}) are met.
@item @{ dg-require-@var{support} args @}
Skip the test if the target does not provide the required support;
......
2008-05-21 Janis Johnson <janis187@us.ibm.com>
* lib/target-supports-dg.exp (dg-xfail-run-if): New.
* gcc.test-framework/dg-do-run-xrif-exp-F.c: New test.
* gcc.test-framework/dg-do-run-xrif-exp-P.c: New test.
* gcc.test-framework/dg-do-run-xrif-exp-XF.c: New test.
* gcc.test-framework/dg-do-run-xrif-exp-XP.c: New test.
* gcc.test-framework/dg-dot-run-xrif-exp-F.c: New test.
* gcc.test-framework/dg-dot-run-xrif-exp-P.c: New test.
* gcc.test-framework/dg-dot-run-xrif-exp-XF.c: New test.
* gcc.test-framework/dg-dot-run-xrif-exp-XP.c: New test.
* gcc.test-framework/test-framework.awk: Handle new tests.
2008-05-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/36257
......
/* { dg-do run } */
/* { dg-xfail-run-if "" { empty-*-* } { "*" } { "" } } */
extern void abort (void);
int
main ()
{
abort (); /* This results in a failure. */
}
/* { dg-do run } */
/* { dg-xfail-run-if "" { empty-*-* } { "*" } { "" } } */
extern void abort (void);
int
main ()
{
return 0; /* This results in a pass. */
}
/* { dg-do run } */
/* { dg-xfail-run-if "" { *-*-* } { "*" } { "" } } */
extern void abort (void);
int
main ()
{
abort (); /* This results in an expected failure. */
}
/* { dg-do run } */
/* { dg-xfail-run-if "" { *-*-* } { "*" } { "" } } */
extern void abort (void);
int
main ()
{
return 0; /* This results in unexpected pass. */
}
/* { dg-do run { xfail *-empty-* } } */
/* { dg-xfail-run-if "" { empty-*-* } { "*" } { "" } } */
extern void abort (void);
int
main ()
{
abort (); /* Neither xfail list matched, so fail. */
}
/* { dg-do run { xfail *-empty-* } } */
/* { dg-xfail-run-if "" { empty-*-* } { "*" } { "" } } */
extern void abort (void);
int
main ()
{
return 0; /* Neither xfail list matched, so pass. */
}
/* { dg-do run { xfail *-*-* } } */
/* { dg-xfail-run-if "" { empty-*-* } { "*" } { "" } } */
extern void abort (void);
int
main ()
{
abort (); /* A failed match doesn't override an existing XFAIL. */
}
/* { dg-do run { xfail empty-*-* } } */
/* { dg-xfail-run-if "" { *-*-* } { "*" } { "" } } */
extern void abort (void);
int
main ()
{
return 0; /* First xfail list didn't match but second did, so XPASS. */
}
......@@ -3,7 +3,7 @@
# of passing tests.
#
#
# Copyright (c) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
# Copyright (c) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -47,6 +47,8 @@ BEGIN { skip = 1; passes = 0; fails = 0; }
/dg-outexists.*\(test for excess errors)/ { ignore(); next }
/dg-outexists.*\(test for warnings/ { ignore(); next }
/dg-outexists.*\(test for errors/ { ignore(); next }
# ignore compile step for dg-xfail-run-if tests.
/run-xrif.*\(test for excess errors)/ { ignore(); next }
# The other dox tests pass the compile step; ignore that message.
/^PASS.*dox.*\(test for excess errors\)/ { ignore(); next }
# The sf tests pass the compile step; ignore that message.
......
......@@ -294,6 +294,30 @@ proc dg-xfail-if { args } {
}
}
# Like dg-xfail-if but for the execute step.
proc dg-xfail-run-if { args } {
# Don't bother if we're already skipping the test.
upvar dg-do-what dg-do-what
if { [lindex ${dg-do-what} 1] == "N" } {
return
}
set args [lreplace $args 0 0]
set selector [list target [lindex $args 1]]
if { [dg-process-target $selector] == "S" } {
# These are defined in DejaGnu's dg-test, needed by check-flags.
upvar dg-extra-tool-flags dg-extra-tool-flags
upvar tool_flags tool_flags
if [check-flags $args] {
upvar dg-do-what dg-do-what
set dg-do-what [list [lindex ${dg-do-what} 0] "S" "F"]
}
}
}
# Record whether the program is expected to return a nonzero status.
set shouldfail 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment