testsuite: Allow setting gpp_std_list in configuration files
authorJonathan Wakely <jwakely@redhat.com>
Tue, 29 Mar 2022 10:17:01 +0000 (11:17 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 29 Mar 2022 19:30:44 +0000 (20:30 +0100)
This allows the gpp_std_list variable to be set in ~/.dejagnurc instead
of using the GXX_TESTSUITE_STDS environment variable.  This is
consistent with how other defaults such as tool_timeout can be set.

The environment variable can still be used to override the default.

gcc/testsuite/ChangeLog:

* lib/g++-dg.exp: Update comments.
* lib/g++.exp (gpp_std_list): Check for an existing value before
setting it to an empty list.

gcc/testsuite/lib/g++-dg.exp
gcc/testsuite/lib/g++.exp

index a1bc370..59e8081 100644 (file)
@@ -27,8 +27,8 @@ proc g++-dg-prune { system text } {
     return [gcc-dg-prune $system $text]
 }
 
-# Modified dg-runtest that runs tests in both C++98 and C++11 modes
-# unless they specifically specify one or the other.
+# Modified dg-runtest that runs tests in multiple standard modes,
+# unless they specifically specify one standard.
 proc g++-dg-runtest { testcases flags default-extra-flags } {
     global runtests
 
@@ -39,7 +39,7 @@ proc g++-dg-runtest { testcases flags default-extra-flags } {
        }
 
        # If the testcase specifies a standard, use that one.
-       # If not, run it under both standards, allowing GNU extensions
+       # If not, run it under several standards, allowing GNU extensions
        # if there's a dg-options line.
        if ![search_for $test "-std=*++"] {
            if [search_for $test "dg-options"] {
@@ -48,6 +48,7 @@ proc g++-dg-runtest { testcases flags default-extra-flags } {
                set std_prefix "-std=c++"
            }
 
+           # See g++.exp for the initial value of this list.
            global gpp_std_list
            if { [llength $gpp_std_list] > 0 } {
                set std_list $gpp_std_list
index 3744ebe..24ef068 100644 (file)
@@ -32,7 +32,11 @@ load_lib target-libpath.exp
 
 
 set gpp_compile_options ""
-set gpp_std_list { }
+# Allow gpp_std_list to be set in configuration files, e.g., ~/.dejagnurc
+if ![info exists gpp_std_list] {
+    set gpp_std_list { }
+}
+# Allow gpp_std_list to be set from the environment.
 if [info exists env(GXX_TESTSUITE_STDS)] {
     set gpp_std_list [split $env(GXX_TESTSUITE_STDS) ","]
 }