This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch, test] Enable to prune warnings for tests defined in one exp file
- From: "Terry Guo" <terry dot guo at arm dot com>
- To: <gcc-patches at gcc dot gnu dot org>
- Cc: "Richard Guenther" <rguenther at suse dot de>
- Date: Mon, 27 Aug 2012 16:14:57 +0800
- Subject: [Patch, test] Enable to prune warnings for tests defined in one exp file
Hello,
This patch intends to provide a chance to prune common warning messages for
tests defined in an exp file. It can avoid adding dg-prune to such cases one
by one. The story behind this patch is that when torture cases in arm.exp
with various arch/cpu options, there are always warnings on "warning: switch
-mcpu=cortex-m3 conflicts with -march=armv5te switch [enabled by default]".
The "-march=armv5te" is from dg-options of the case. The "-mcpu=cortex-m3"
is from options we used to torture this case. To avoid such harmless
warnings, usually we need to manually add dg-prune to such cases one by one.
This is kind of less efficient. With this path, we just need to add this
warning into variable dg_runtest_extra_prunes.
The related discussion is at
http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00630.html.
Tested on QEMU for cortex-m3 and x86 platform. The test-framework.exp is
also enabled. No regression found.
Is it OK to trunk?
BR,
Terry
2012-08-27 Terry Guo <terry.guo@arm.com>
* lib/gcc-dg.exp (dg_runtest_extra_prunes): New variable to define
rules
that will be applied to all tests in a .exp file.
(gcc-dg-prune): Include rules defined by the above variable.
* gcc.target/arm/arm.exp (dg_runtest_extra_prunes): Skip all the
harmless
architecture switch conflict warnings.
diff --git a/gcc/testsuite/gcc.target/arm/arm.exp
b/gcc/testsuite/gcc.target/arm/arm.exp
index 0838d37..3a62b24 100644
--- a/gcc/testsuite/gcc.target/arm/arm.exp
+++ b/gcc/testsuite/gcc.target/arm/arm.exp
@@ -30,6 +30,11 @@ if ![info exists DEFAULT_CFLAGS] then {
set DEFAULT_CFLAGS " -ansi -pedantic-errors"
}
+# This variable should only apply to tests called in this exp file.
+global dg_runtest_extra_prunes
+set dg_runtest_extra_prunes ""
+lappend dg_runtest_extra_prunes "warning: switch -m(cpu|arch)=.* conflicts
with -m(cpu|arch)=.* switch"
+
# Initialize `dg'.
dg-init
@@ -38,4 +43,5 @@ dg-runtest [lsort [glob -nocomplain
$srcdir/$subdir/*.\[cCS\]]] \
"" $DEFAULT_CFLAGS
# All done.
+set dg_runtest_extra_prunes ""
dg-finish
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index 3bff8b4..825c2f6 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -211,9 +211,13 @@ proc gcc-dg-test { prog do_what extra_tool_flags } {
proc gcc-dg-prune { system text } {
global additional_prunes
+ # Extra prune rules that will apply to tests defined in a .exp file.
+ # Always remember to clear it in .exp file after executed all tests.
+ global dg_runtest_extra_prunes
+
set text [prune_gcc_output $text]
- foreach p $additional_prunes {
+ foreach p "$additional_prunes $dg_runtest_extra_prunes" {
if { [string length $p] > 0 } {
# Following regexp matches a complete line containing $p.
regsub -all "(^|\n)\[^\n\]*$p\[^\n\]*" $text "" text
@@ -809,3 +813,4 @@ proc gdb-exists { args } {
}
set additional_prunes ""
+set dg_runtest_extra_prunes ""