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]

[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 ""



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