A large number of gm2 tests are timing out even on current Solaris/SPARC systems. As detailed in the PR, the problem is that the gm2 testsuite artificially lowers many timeouts way below the DejaGnu default of 300 seconds, often as short as 10 seconds. The problem lies both in the values (they may be appropriate for some targets, but too low for others, especially under high load) and the fact that it uses absolute values, overriding e.g. settings from a build-wide site.exp.
Therefore this patch removes all those overrides, restoring the defaults. Tested on sparc-sun-solaris2.11 (where all the previous timeouts are gone) and i386-pc-solaris2.11. Ok for trunk and the gcc-14 branch once GCC 14.1.0 has been released? Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University 2024-04-29 Rainer Orth <r...@cebitec.uni-bielefeld.de> gcc/testsuite: PR modula2/114886 * lib/gm2.exp: Don't load timeout-dg.exp. Don't set gm2_previous_timeout. Don't call dg-timeout. (gm2_push_timeout, gm2_pop_timeout): Remove. (gm2_init): Don't call dg-timeout. * lib/gm2-torture.exp: Don't load timeout-dg.exp. Don't set gm2_previous_timeout. Don't call dg-timeout. (gm2_push_timeout, gm2_pop_timeout): Remove. * gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp: Don't load timeout-dg.exp. Don't call gm2_push_timeout, gm2_pop_timeout. * gm2/examples/map/pass/examples-map-pass.exp: Don't call gm2_push_timeout, gm2_pop_timeout. * gm2/iso/run/pass/iso-run-pass.exp: Don't load timeout-dg.exp. Don't call gm2_push_timeout, gm2_pop_timeout. * gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp: Don't load timeout-dg.exp. Don't call gm2_push_timeout, gm2_pop_timeout. * gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp: Don't call gm2_push_timeout, gm2_pop_timeout. * gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp: Don't load timeout-dg.exp. Don't call gm2_push_timeout, gm2_pop_timeout.
# HG changeset patch # Parent 7ce0689744625483e581866918724503e5630773 testsuite: gm2: Remove timeout overrides [PR114886] diff --git a/gcc/testsuite/gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp b/gcc/testsuite/gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp --- a/gcc/testsuite/gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp +++ b/gcc/testsuite/gm2/coroutines/pim/run/pass/coroutines-pim-run-pass.exp @@ -24,16 +24,11 @@ if $tracelevel then { # load support procs load_lib gm2-torture.exp -load_lib timeout-dg.exp set gm2src ${srcdir}/../gm2 gm2_init_cor "" -# We should be able to compile, link or run in 20 seconds. -gm2_push_timeout 20 - - foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. if ![runtest_file_p $runtests $testcase] then { @@ -42,5 +37,3 @@ foreach testcase [lsort [glob -nocomplai gm2-torture-execute $testcase "" "pass" } - -gm2_pop_timeout diff --git a/gcc/testsuite/gm2/examples/map/pass/examples-map-pass.exp b/gcc/testsuite/gm2/examples/map/pass/examples-map-pass.exp --- a/gcc/testsuite/gm2/examples/map/pass/examples-map-pass.exp +++ b/gcc/testsuite/gm2/examples/map/pass/examples-map-pass.exp @@ -27,9 +27,6 @@ load_lib gm2-torture.exp gm2_init_pim "${srcdir}/${subdir}" -# We should be able to compile, link or run in 30 seconds. -gm2_push_timeout 30 - foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. if ![runtest_file_p $runtests $testcase] then { @@ -38,5 +35,3 @@ foreach testcase [lsort [glob -nocomplai gm2-torture $testcase } - -gm2_pop_timeout diff --git a/gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp b/gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp --- a/gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp +++ b/gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp @@ -23,14 +23,10 @@ if $tracelevel then { # load support procs load_lib gm2-torture.exp -load_lib timeout-dg.exp gm2_init_iso "${srcdir}/gm2/iso/run/pass" -fsoft-check-all gm2_link_obj fileio.o -# We should be able to compile, link or run in 60 seconds. -gm2_push_timeout 60 - foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. if ![runtest_file_p $runtests $testcase] then { @@ -42,5 +38,3 @@ foreach testcase [lsort [glob -nocomplai gm2-torture-execute $testcase "" "pass" } } - -gm2_pop_timeout diff --git a/gcc/testsuite/gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp b/gcc/testsuite/gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp --- a/gcc/testsuite/gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp +++ b/gcc/testsuite/gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp @@ -24,15 +24,11 @@ if $tracelevel then { # load support procs load_lib gm2-torture.exp -load_lib timeout-dg.exp set gm2src ${srcdir}/../m2 gm2_init_pim "" -# We should be able to compile, link or run in 60 seconds. -gm2_push_timeout 60 - foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. if ![runtest_file_p $runtests $testcase] then { @@ -41,5 +37,3 @@ foreach testcase [lsort [glob -nocomplai gm2-torture-execute $testcase "" "pass" } - -gm2_pop_timeout diff --git a/gcc/testsuite/gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp b/gcc/testsuite/gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp --- a/gcc/testsuite/gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp +++ b/gcc/testsuite/gm2/projects/iso/run/pass/halma/projects-iso-run-pass-halma.exp @@ -29,11 +29,6 @@ set gm2src ${srcdir}/../m2 gm2_init_iso "" -# We should be able to compile, link or run in 45 seconds even on a -# really slow host/target. - -gm2_push_timeout 45 - foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. if ![runtest_file_p $runtests $testcase] then { @@ -42,5 +37,3 @@ foreach testcase [lsort [glob -nocomplai gm2-torture-execute $testcase "" "pass" } - -gm2_pop_timeout diff --git a/gcc/testsuite/gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp b/gcc/testsuite/gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp --- a/gcc/testsuite/gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp +++ b/gcc/testsuite/gm2/switches/whole-program/pass/run/switches-whole-program-pass-run.exp @@ -23,10 +23,8 @@ if $tracelevel then { # load support procs load_lib gm2-torture.exp -load_lib timeout-dg.exp gm2_init_pim "${srcdir}/gm2/switches/whole-program/run/pass" -fm2-whole-program -gm2_push_timeout 120 foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] { # If we're only testing specific files and this isn't one of them, skip it. @@ -35,5 +33,3 @@ foreach testcase [lsort [glob -nocomplai } gm2-torture $testcase } - -gm2_pop_timeout diff --git a/gcc/testsuite/lib/gm2-torture.exp b/gcc/testsuite/lib/gm2-torture.exp --- a/gcc/testsuite/lib/gm2-torture.exp +++ b/gcc/testsuite/lib/gm2-torture.exp @@ -21,34 +21,6 @@ load_lib file-format.exp load_lib target-libpath.exp load_lib timeout.exp -load_lib timeout-dg.exp - - -if {[info exists individual_timeout]} { - set gm2_previous_timeout $individual_timeout -} else { - set gm2_previous_timeout 10 -} - - -# We should be able to complete any test in 10 seconds. -dg-timeout S 10 - - -# only push one level. - -proc gm2_push_timeout { secs } { - global individual_timeout - set individual_timeout $secs -} - - -proc gm2_pop_timeout { } { - global individual_timeout - global gm2_previous_timeout - set individual_timeout $gm2_previous_timeout -} - # The default option list can be overridden by # TORTURE_OPTIONS="{ { list1 } ... { listN } }" diff --git a/gcc/testsuite/lib/gm2.exp b/gcc/testsuite/lib/gm2.exp --- a/gcc/testsuite/lib/gm2.exp +++ b/gcc/testsuite/lib/gm2.exp @@ -23,36 +23,6 @@ load_lib prune.exp load_lib gcc-defs.exp load_lib target-libpath.exp load_lib timeout.exp -load_lib timeout-dg.exp - - -if {[info exists individual_timeout]} { - set gm2_previous_timeout $individual_timeout -} else { - set gm2_previous_timeout 10 -} - - -# set gm2_previous_timeout $individual_timeout - -# We should be able to complete any test in 10 seconds. -dg-timeout S 10 - - -# only push one level. - -proc gm2_push_timeout { secs } { - global individual_timeout - set individual_timeout $secs -} - - -proc gm2_pop_timeout { } { - global individual_timeout - global gm2_previous_timeout - set individual_timeout $gm2_previous_timeout -} - # # GCC_UNDER_TEST is the compiler under test. @@ -167,10 +137,6 @@ proc gm2_init { args } { set gm2_link_path "[gm2_link_flags [get_multilibs]]" verbose $gm2_link_path 1 - - # Set the default timeout value, larger tests can override - # this if necessary. - dg-timeout S 10 }