[testsuite/guality] Run guality tests with Og
authorTom de Vries <tdevries@suse.de>
Sun, 15 Jul 2018 16:26:08 +0000 (16:26 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Sun, 15 Jul 2018 16:26:08 +0000 (16:26 +0000)
We advertise Og as the optimization level of choice for the standard
edit-compile-debug cycle, but do not run the guality tests for Og with the
default torture options.

This patch ensures that we test -Og in the guality tests.

F.i., for gcc.dg/guality there are 45 fails for Og (while there are none for
O1), in these test-cases:
...
gcc.dg/guality/pr54200.c
gcc.dg/guality/pr54970.c
gcc.dg/guality/pr56154-1.c
gcc.dg/guality/pr59776.c
gcc.dg/guality/sra-1.c
...

2018-07-15  Tom de Vries  <tdevries@suse.de>

* lib/gcc-gdb-test.exp (guality_minimal_options): New proc.
* lib/gfortran-dg.exp (gfortran-dg-runtest): Don't call torture-init if
already called.
* g++.dg/guality/guality.exp: Ensure Og is part of torture options.
* gcc.dg/guality/guality.exp: Same.
* gfortran.dg/guality/guality.exp: Same.

From-SVN: r262668

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/guality/guality.exp
gcc/testsuite/gcc.dg/guality/guality.exp
gcc/testsuite/gfortran.dg/guality/guality.exp
gcc/testsuite/lib/gcc-gdb-test.exp
gcc/testsuite/lib/gfortran-dg.exp

index b19764297117c2067ef66952ff28e30b9b493b1e..b41f0c05062759a20c184deda7d987d086419938 100644 (file)
@@ -1,3 +1,12 @@
+2018-07-15  Tom de Vries  <tdevries@suse.de>
+
+       * lib/gcc-gdb-test.exp (guality_minimal_options): New proc.
+       * lib/gfortran-dg.exp (gfortran-dg-runtest): Don't call torture-init if
+       already called.
+       * g++.dg/guality/guality.exp: Ensure Og is part of torture options.
+       * gcc.dg/guality/guality.exp: Same.
+       * gfortran.dg/guality/guality.exp: Same.
+
 2018-07-13  H.J. Lu  <hongjiu.lu@intel.com>
            Sunil K Pandey  <sunil.k.pandey@intel.com>
 
index 4be22baa19c0f225547677e0ac67ca35d6fb7f18..757b20b61e24e8df263ec708daade879e77a05bc 100644 (file)
@@ -48,6 +48,14 @@ if ![info exists ::env(GUALITY_GDB_NAME)] {
 }
 report_gdb $::env(GUALITY_GDB_NAME) [info script]
 
+global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS
+set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS]
+torture-init
+set-torture-options \
+    $guality_dg_torture_options \
+    [list {}] \
+    $LTO_TORTURE_OPTIONS
+
 if {[check_guality "
   #include \"$srcdir/$subdir/guality.h\"
   volatile long int varl = 6;
@@ -65,4 +73,5 @@ if [info exists guality_gdb_name] {
     unsetenv GUALITY_GDB_NAME
 }
 
+torture-finish
 dg-finish
index d9994341477ca635bfa98e53d524bc03b0e1c2dc..ca77a446f86be97bf5e482eb4eafeb8b95c2f071 100644 (file)
@@ -62,7 +62,8 @@ proc guality_transform_options { args } {
 }
 
 global DG_TORTURE_OPTIONS
-set guality_dg_torture_options [guality_transform_options $DG_TORTURE_OPTIONS]
+set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS]
+set guality_dg_torture_options [guality_transform_options $guality_dg_torture_options]
 set guality_lto_torture_options [guality_transform_options $LTO_TORTURE_OPTIONS]
 torture-init
 set-torture-options \
index f76347dd52fc191e49e8bed1a7abd2513f176b3e..eaa7ae770d63b0f133f8474a366f94621e864ba3 100644 (file)
@@ -29,10 +29,17 @@ if ![info exists ::env(GUALITY_GDB_NAME)] {
 }
 report_gdb $::env(GUALITY_GDB_NAME) [info script]
 
+global DG_TORTURE_OPTIONS
+set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS]
+torture-init
+set-torture-options \
+    $guality_dg_torture_options \
+
 gfortran-dg-runtest [lsort [glob $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ]] "" ""
 
 if [info exists guality_gdb_name] {
     unsetenv GUALITY_GDB_NAME
 }
 
+torture-finish
 dg-finish
index bb966d43023e7b3098ba8c63e82e4f3507b0ef19..b13d3ec7f85e6a936a5b4ef17184fba0dbe11a45 100644 (file)
@@ -166,3 +166,17 @@ proc report_gdb { gdb loc } {
     }
     send_log -- "---\n$gdb_version\n---\n"
 }
+
+# Argument 0 is the option list.
+# Return the option list, ensuring that at least -Og is present.
+
+proc guality_minimal_options { args } {
+    set options [lindex $args 0]
+    foreach opt $options {
+       if { [regexp -- "-Og" $opt] } {
+           return $options
+       }
+    }
+    
+    return [lappend options "-Og"]
+}
index 37fb4f00aa958c690aa893e3f3c006a9dfdb0201..4aec0a5826e7d1a25eee4bbbfb2bbb17ffccd2fd 100644 (file)
@@ -124,10 +124,16 @@ proc gfortran-dg-prune { system text } {
 # as c-torture does.
 proc gfortran-dg-runtest { testcases flags default-extra-flags } {
     global runtests
-    global DG_TORTURE_OPTIONS torture_with_loops
-
-    torture-init
-    set-torture-options $DG_TORTURE_OPTIONS
+    global torture_with_loops
+
+    # Some callers set torture options themselves; don't override those.
+    set existing_torture_options [torture-options-exist]
+    if { $existing_torture_options == 0 } {
+       global DG_TORTURE_OPTIONS
+       torture-init
+       set-torture-options $DG_TORTURE_OPTIONS
+    }
+    dump-torture-options
 
     foreach test $testcases {
        # If we're only testing specific files and this isn't one of
@@ -154,7 +160,9 @@ proc gfortran-dg-runtest { testcases flags default-extra-flags } {
        }
     }
 
-    torture-finish
+    if { $existing_torture_options == 0 } {
+       torture-finish
+    }
 }
 
 proc gfortran-dg-debug-runtest { target_compile trivial opt_opts testcases } {