aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2023-05-10 09:17:47 +0200
committerThomas Schwinge <thomas@codesourcery.com>2023-05-11 10:03:58 +0200
commit5e05361e2fef586b0e04ee81220ad0217401cc4d (patch)
tree761fea4e12dff2abff77fd29fa97aac798cf7ef5 /gcc
parent23c49bb8d09bc3bfce9a08be637cf32ac014de56 (diff)
downloadgcc-5e05361e2fef586b0e04ee81220ad0217401cc4d.zip
gcc-5e05361e2fef586b0e04ee81220ad0217401cc4d.tar.gz
gcc-5e05361e2fef586b0e04ee81220ad0217401cc4d.tar.bz2
Testsuite: Add 'torture-init-done', and use it to conditionalize implicit 'torture-init'
Recent commit d6654a4be3ba44c0d57be7c8a51d76d9721345e1 "Let each 'lto_init' determine the default 'LTO_OPTIONS', and 'torture-init' the 'LTO_TORTURE_OPTIONS'" made 'torture-init' non-idempotent re 'LTO_TORTURE_OPTIONS', in order to catch certain classes of errors. Now, most of all '*.exp' files have 'torture-init' followed by 'set-torture-options' before 'gcc-dg-runtest' etc., and therefore don't run into the latter's "Some callers set torture options themselves; don't override those." code. Some '*.exp' files however do 'torture-init' but not 'set-torture-options', and therefore we can't any longer conditionalize the implicit 'torture-init' by '![torture-options-exist]'. gcc/testsuite/ * lib/torture-options.exp (torture-init-done): Add. * lib/gcc-dg.exp (gcc-dg-runtest): Use it to conditionalize implicit 'torture-init'. * lib/gfortran-dg.exp (gfortran-dg-runtest): Likewise. * lib/obj-c++-dg.exp (obj-c++-dg-runtest): Likewise. * lib/objc-dg.exp (objc-dg-runtest): Likewise.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp8
-rw-r--r--gcc/testsuite/lib/gfortran-dg.exp8
-rw-r--r--gcc/testsuite/lib/obj-c++-dg.exp8
-rw-r--r--gcc/testsuite/lib/objc-dg.exp8
-rw-r--r--gcc/testsuite/lib/torture-options.exp6
5 files changed, 30 insertions, 8 deletions
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index 693cbdd..4ed4233 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -568,11 +568,15 @@ proc search_for { file pattern } {
proc gcc-dg-runtest { testcases flags default-extra-flags } {
global runtests
+ # Some callers initialize torture testing themselves; don't override those.
+ set existing_torture_init [torture-init-done]
+ if { $existing_torture_init == 0 } {
+ torture-init
+ }
# 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 LTO_TORTURE_OPTIONS
- torture-init
set-torture-options $DG_TORTURE_OPTIONS [list {}] $LTO_TORTURE_OPTIONS
}
dump-torture-options
@@ -603,7 +607,7 @@ proc gcc-dg-runtest { testcases flags default-extra-flags } {
}
}
- if { $existing_torture_options == 0 } {
+ if { $existing_torture_init == 0 } {
torture-finish
}
}
diff --git a/gcc/testsuite/lib/gfortran-dg.exp b/gcc/testsuite/lib/gfortran-dg.exp
index 3c813d3..e85f791 100644
--- a/gcc/testsuite/lib/gfortran-dg.exp
+++ b/gcc/testsuite/lib/gfortran-dg.exp
@@ -126,11 +126,15 @@ proc gfortran-dg-runtest { testcases flags default-extra-flags } {
global runtests
global torture_with_loops
+ # Some callers initialize torture testing themselves; don't override those.
+ set existing_torture_init [torture-init-done]
+ if { $existing_torture_init == 0 } {
+ torture-init
+ }
# 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
@@ -160,7 +164,7 @@ proc gfortran-dg-runtest { testcases flags default-extra-flags } {
}
}
- if { $existing_torture_options == 0 } {
+ if { $existing_torture_init == 0 } {
torture-finish
}
}
diff --git a/gcc/testsuite/lib/obj-c++-dg.exp b/gcc/testsuite/lib/obj-c++-dg.exp
index 9123240..8deaed0 100644
--- a/gcc/testsuite/lib/obj-c++-dg.exp
+++ b/gcc/testsuite/lib/obj-c++-dg.exp
@@ -32,11 +32,15 @@ proc obj-c++-dg-prune { system text } {
proc obj-c++-dg-runtest { testcases flags default-extra-flags } {
global runtests
+ # Some callers initialize torture testing themselves; don't override those.
+ set existing_torture_init [torture-init-done]
+ if { $existing_torture_init == 0 } {
+ torture-init
+ }
# 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 LTO_TORTURE_OPTIONS
- torture-init
set-torture-options $DG_TORTURE_OPTIONS [list {}] $LTO_TORTURE_OPTIONS
}
dump-torture-options
@@ -67,7 +71,7 @@ proc obj-c++-dg-runtest { testcases flags default-extra-flags } {
}
}
- if { $existing_torture_options == 0 } {
+ if { $existing_torture_init == 0 } {
torture-finish
}
} \ No newline at end of file
diff --git a/gcc/testsuite/lib/objc-dg.exp b/gcc/testsuite/lib/objc-dg.exp
index 9ca751c..cf08cdc 100644
--- a/gcc/testsuite/lib/objc-dg.exp
+++ b/gcc/testsuite/lib/objc-dg.exp
@@ -33,11 +33,15 @@ proc objc-dg-prune { system text } {
proc objc-dg-runtest { testcases flags default-extra-flags } {
global runtests
+ # Some callers initialize torture testing themselves; don't override those.
+ set existing_torture_init [torture-init-done]
+ if { $existing_torture_init == 0 } {
+ torture-init
+ }
# 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 LTO_TORTURE_OPTIONS
- torture-init
set-torture-options $DG_TORTURE_OPTIONS [list {}] $LTO_TORTURE_OPTIONS
}
dump-torture-options
@@ -68,7 +72,7 @@ proc objc-dg-runtest { testcases flags default-extra-flags } {
}
}
- if { $existing_torture_options == 0 } {
+ if { $existing_torture_init == 0 } {
torture-finish
}
}
diff --git a/gcc/testsuite/lib/torture-options.exp b/gcc/testsuite/lib/torture-options.exp
index 394418e..d00d07e 100644
--- a/gcc/testsuite/lib/torture-options.exp
+++ b/gcc/testsuite/lib/torture-options.exp
@@ -51,6 +51,12 @@ proc torture-init { args } {
}
}
+# Return 1 if 'torture-init' has already been done, 0 otherwise.
+proc torture-init-done { args } {
+ global LTO_TORTURE_OPTIONS
+ return [info exists LTO_TORTURE_OPTIONS]
+}
+
# Return 1 if torture options have already been set, 0 otherwise.
proc torture-options-exist { args } {
global torture_with_loops