mirror of
https://github.com/gcc-mirror/gcc.git
synced 2024-11-21 13:40:47 +00:00
testsuite: move dg-test cleanup code from gcc-dg.exp to its own file
I need to use this cleanup logic for the testsuite for libdiagnostics where it's too awkward to directly use gcc-dg.exp itself. No functional change intended. gcc/testsuite/ChangeLog: * lib/dg-test-cleanup.exp: New file, from material moved from lib/gcc-dg.exp. * lib/gcc-dg.exp: Add load_lib of dg-test-cleanup.exp. (cleanup-after-saved-dg-test): Move to lib/dg-test-cleanup.exp. (dg-test): Likewise for override. (initialize_prune_notes): Likewise. libatomic/ChangeLog: * testsuite/lib/libatomic.exp: Add "load_gcc_lib dg-test-cleanup.exp". libgomp/ChangeLog: * testsuite/lib/libgomp.exp: Add "load_gcc_lib dg-test-cleanup.exp". libitm/ChangeLog: * testsuite/lib/libitm.exp: Add "load_gcc_lib dg-test-cleanup.exp". libphobos/ChangeLog: * testsuite/lib/libphobos-dg.exp: Add "load_gcc_lib dg-test-cleanup.exp". libstdc++-v3/ChangeLog: * testsuite/lib/libstdc++.exp: Add "load_gcc_lib dg-test-cleanup.exp". libvtv/ChangeLog: * testsuite/lib/libvtv.exp: Add "load_gcc_lib dg-test-cleanup.exp". Signed-off-by: David Malcolm <dmalcolm@redhat.com>
This commit is contained in:
parent
344356f781
commit
c9d21e19df
116
gcc/testsuite/lib/dg-test-cleanup.exp
Normal file
116
gcc/testsuite/lib/dg-test-cleanup.exp
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
# Copyright (C) 1997-2024 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with GCC; see the file COPYING3. If not see
|
||||||
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# We need to make sure that additional_* are cleared out after every
|
||||||
|
# test. It is not enough to clear them out *before* the next test run
|
||||||
|
# because gcc-target-compile gets run directly from some .exp files
|
||||||
|
# (outside of any test). (Those uses should eventually be eliminated.)
|
||||||
|
|
||||||
|
# Because the DG framework doesn't provide a hook that is run at the
|
||||||
|
# end of a test, we must replace dg-test with a wrapper.
|
||||||
|
|
||||||
|
if { [info procs saved-dg-test] == [list] } {
|
||||||
|
rename dg-test saved-dg-test
|
||||||
|
|
||||||
|
# Helper function for cleanups that should happen after the call
|
||||||
|
# to the real dg-test, whether or not it returns normally, or
|
||||||
|
# fails with an error.
|
||||||
|
proc cleanup-after-saved-dg-test { } {
|
||||||
|
global additional_files
|
||||||
|
global additional_sources
|
||||||
|
global additional_sources_used
|
||||||
|
global additional_prunes
|
||||||
|
global compiler_conditional_xfail_data
|
||||||
|
global shouldfail
|
||||||
|
global expect_ice
|
||||||
|
global testname_with_flags
|
||||||
|
global set_target_env_var
|
||||||
|
global set_compiler_env_var
|
||||||
|
global saved_compiler_env_var
|
||||||
|
global keep_saved_temps_suffixes
|
||||||
|
global nn_line_numbers_enabled
|
||||||
|
global multiline_expected_outputs
|
||||||
|
global freeform_regexps
|
||||||
|
global save_linenr_varnames
|
||||||
|
|
||||||
|
set additional_files ""
|
||||||
|
set additional_sources ""
|
||||||
|
set additional_sources_used ""
|
||||||
|
set additional_prunes ""
|
||||||
|
set shouldfail 0
|
||||||
|
set expect_ice 0
|
||||||
|
if [info exists set_target_env_var] {
|
||||||
|
unset set_target_env_var
|
||||||
|
}
|
||||||
|
if [info exists set_compiler_env_var] {
|
||||||
|
restore-compiler-env-var
|
||||||
|
unset set_compiler_env_var
|
||||||
|
unset saved_compiler_env_var
|
||||||
|
}
|
||||||
|
if [info exists keep_saved_temps_suffixes] {
|
||||||
|
unset keep_saved_temps_suffixes
|
||||||
|
}
|
||||||
|
unset_timeout_vars
|
||||||
|
if [info exists compiler_conditional_xfail_data] {
|
||||||
|
unset compiler_conditional_xfail_data
|
||||||
|
}
|
||||||
|
if [info exists testname_with_flags] {
|
||||||
|
unset testname_with_flags
|
||||||
|
}
|
||||||
|
set nn_line_numbers_enabled 0
|
||||||
|
set multiline_expected_outputs []
|
||||||
|
set freeform_regexps []
|
||||||
|
|
||||||
|
if { [info exists save_linenr_varnames] } {
|
||||||
|
foreach varname $save_linenr_varnames {
|
||||||
|
# Cleanup varname
|
||||||
|
eval global $varname
|
||||||
|
eval unset $varname
|
||||||
|
|
||||||
|
# Cleanup varname_used, or generate defined-but-not-used
|
||||||
|
# warning.
|
||||||
|
set varname_used used_$varname
|
||||||
|
eval global $varname_used
|
||||||
|
eval set used [info exists $varname_used]
|
||||||
|
if { $used } {
|
||||||
|
eval unset $varname_used
|
||||||
|
} else {
|
||||||
|
regsub {^saved_linenr_} $varname "" org_varname
|
||||||
|
warning "dg-line var $org_varname defined, but not used"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset save_linenr_varnames
|
||||||
|
}
|
||||||
|
|
||||||
|
initialize_prune_notes
|
||||||
|
}
|
||||||
|
|
||||||
|
proc dg-test { args } {
|
||||||
|
global errorInfo
|
||||||
|
|
||||||
|
if { [ catch { eval saved-dg-test $args } errmsg ] } {
|
||||||
|
set saved_info $errorInfo
|
||||||
|
cleanup-after-saved-dg-test
|
||||||
|
error $errmsg $saved_info
|
||||||
|
}
|
||||||
|
cleanup-after-saved-dg-test
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc initialize_prune_notes { } {
|
||||||
|
global prune_notes
|
||||||
|
set prune_notes 1
|
||||||
|
}
|
@ -34,6 +34,7 @@ load_lib target-libpath.exp
|
|||||||
load_lib torture-options.exp
|
load_lib torture-options.exp
|
||||||
load_lib fortran-modules.exp
|
load_lib fortran-modules.exp
|
||||||
load_lib multiline.exp
|
load_lib multiline.exp
|
||||||
|
load_lib dg-test-cleanup.exp
|
||||||
|
|
||||||
# We set LC_ALL and LANG to C so that we get the same error messages as expected.
|
# We set LC_ALL and LANG to C so that we get the same error messages as expected.
|
||||||
setenv LC_ALL C
|
setenv LC_ALL C
|
||||||
@ -991,102 +992,6 @@ proc output-exists-not { args } {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# We need to make sure that additional_* are cleared out after every
|
|
||||||
# test. It is not enough to clear them out *before* the next test run
|
|
||||||
# because gcc-target-compile gets run directly from some .exp files
|
|
||||||
# (outside of any test). (Those uses should eventually be eliminated.)
|
|
||||||
|
|
||||||
# Because the DG framework doesn't provide a hook that is run at the
|
|
||||||
# end of a test, we must replace dg-test with a wrapper.
|
|
||||||
|
|
||||||
if { [info procs saved-dg-test] == [list] } {
|
|
||||||
rename dg-test saved-dg-test
|
|
||||||
|
|
||||||
# Helper function for cleanups that should happen after the call
|
|
||||||
# to the real dg-test, whether or not it returns normally, or
|
|
||||||
# fails with an error.
|
|
||||||
proc cleanup-after-saved-dg-test { } {
|
|
||||||
global additional_files
|
|
||||||
global additional_sources
|
|
||||||
global additional_sources_used
|
|
||||||
global additional_prunes
|
|
||||||
global compiler_conditional_xfail_data
|
|
||||||
global shouldfail
|
|
||||||
global expect_ice
|
|
||||||
global testname_with_flags
|
|
||||||
global set_target_env_var
|
|
||||||
global set_compiler_env_var
|
|
||||||
global saved_compiler_env_var
|
|
||||||
global keep_saved_temps_suffixes
|
|
||||||
global nn_line_numbers_enabled
|
|
||||||
global multiline_expected_outputs
|
|
||||||
global freeform_regexps
|
|
||||||
global save_linenr_varnames
|
|
||||||
|
|
||||||
set additional_files ""
|
|
||||||
set additional_sources ""
|
|
||||||
set additional_sources_used ""
|
|
||||||
set additional_prunes ""
|
|
||||||
set shouldfail 0
|
|
||||||
set expect_ice 0
|
|
||||||
if [info exists set_target_env_var] {
|
|
||||||
unset set_target_env_var
|
|
||||||
}
|
|
||||||
if [info exists set_compiler_env_var] {
|
|
||||||
restore-compiler-env-var
|
|
||||||
unset set_compiler_env_var
|
|
||||||
unset saved_compiler_env_var
|
|
||||||
}
|
|
||||||
if [info exists keep_saved_temps_suffixes] {
|
|
||||||
unset keep_saved_temps_suffixes
|
|
||||||
}
|
|
||||||
unset_timeout_vars
|
|
||||||
if [info exists compiler_conditional_xfail_data] {
|
|
||||||
unset compiler_conditional_xfail_data
|
|
||||||
}
|
|
||||||
if [info exists testname_with_flags] {
|
|
||||||
unset testname_with_flags
|
|
||||||
}
|
|
||||||
set nn_line_numbers_enabled 0
|
|
||||||
set multiline_expected_outputs []
|
|
||||||
set freeform_regexps []
|
|
||||||
|
|
||||||
if { [info exists save_linenr_varnames] } {
|
|
||||||
foreach varname $save_linenr_varnames {
|
|
||||||
# Cleanup varname
|
|
||||||
eval global $varname
|
|
||||||
eval unset $varname
|
|
||||||
|
|
||||||
# Cleanup varname_used, or generate defined-but-not-used
|
|
||||||
# warning.
|
|
||||||
set varname_used used_$varname
|
|
||||||
eval global $varname_used
|
|
||||||
eval set used [info exists $varname_used]
|
|
||||||
if { $used } {
|
|
||||||
eval unset $varname_used
|
|
||||||
} else {
|
|
||||||
regsub {^saved_linenr_} $varname "" org_varname
|
|
||||||
warning "dg-line var $org_varname defined, but not used"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
unset save_linenr_varnames
|
|
||||||
}
|
|
||||||
|
|
||||||
initialize_prune_notes
|
|
||||||
}
|
|
||||||
|
|
||||||
proc dg-test { args } {
|
|
||||||
global errorInfo
|
|
||||||
|
|
||||||
if { [ catch { eval saved-dg-test $args } errmsg ] } {
|
|
||||||
set saved_info $errorInfo
|
|
||||||
cleanup-after-saved-dg-test
|
|
||||||
error $errmsg $saved_info
|
|
||||||
}
|
|
||||||
cleanup-after-saved-dg-test
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if { [info procs saved-dg-warning] == [list] \
|
if { [info procs saved-dg-warning] == [list] \
|
||||||
&& [info exists gcc_warning_prefix] } {
|
&& [info exists gcc_warning_prefix] } {
|
||||||
rename dg-warning saved-dg-warning
|
rename dg-warning saved-dg-warning
|
||||||
@ -1330,11 +1235,6 @@ proc dg-missed { args } {
|
|||||||
|
|
||||||
variable prune_notes
|
variable prune_notes
|
||||||
|
|
||||||
proc initialize_prune_notes { } {
|
|
||||||
global prune_notes
|
|
||||||
set prune_notes 1
|
|
||||||
}
|
|
||||||
|
|
||||||
initialize_prune_notes
|
initialize_prune_notes
|
||||||
|
|
||||||
proc dg-note { args } {
|
proc dg-note { args } {
|
||||||
|
@ -50,6 +50,7 @@ load_gcc_lib torture-options.exp
|
|||||||
load_gcc_lib timeout.exp
|
load_gcc_lib timeout.exp
|
||||||
load_gcc_lib timeout-dg.exp
|
load_gcc_lib timeout-dg.exp
|
||||||
load_gcc_lib fortran-modules.exp
|
load_gcc_lib fortran-modules.exp
|
||||||
|
load_gcc_lib dg-test-cleanup.exp
|
||||||
|
|
||||||
set dg-do-what-default run
|
set dg-do-what-default run
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ load_gcc_lib scanwpaipa.exp
|
|||||||
load_gcc_lib timeout-dg.exp
|
load_gcc_lib timeout-dg.exp
|
||||||
load_gcc_lib torture-options.exp
|
load_gcc_lib torture-options.exp
|
||||||
load_gcc_lib fortran-modules.exp
|
load_gcc_lib fortran-modules.exp
|
||||||
|
load_gcc_lib dg-test-cleanup.exp
|
||||||
|
|
||||||
# Try to load a test support file, built during libgomp configuration.
|
# Try to load a test support file, built during libgomp configuration.
|
||||||
# Search in '..' vs. '.' to support parallel vs. sequential testing.
|
# Search in '..' vs. '.' to support parallel vs. sequential testing.
|
||||||
|
@ -50,6 +50,7 @@ load_gcc_lib scanwpaipa.exp
|
|||||||
load_gcc_lib timeout-dg.exp
|
load_gcc_lib timeout-dg.exp
|
||||||
load_gcc_lib torture-options.exp
|
load_gcc_lib torture-options.exp
|
||||||
load_gcc_lib fortran-modules.exp
|
load_gcc_lib fortran-modules.exp
|
||||||
|
load_gcc_lib dg-test-cleanup.exp
|
||||||
|
|
||||||
set dg-do-what-default run
|
set dg-do-what-default run
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ load_gcc_lib scanipa.exp
|
|||||||
load_gcc_lib torture-options.exp
|
load_gcc_lib torture-options.exp
|
||||||
load_gcc_lib timeout-dg.exp
|
load_gcc_lib timeout-dg.exp
|
||||||
load_gcc_lib fortran-modules.exp
|
load_gcc_lib fortran-modules.exp
|
||||||
|
load_gcc_lib dg-test-cleanup.exp
|
||||||
load_gcc_lib gcc-dg.exp
|
load_gcc_lib gcc-dg.exp
|
||||||
|
|
||||||
# Utility routines.
|
# Utility routines.
|
||||||
|
@ -73,6 +73,7 @@ load_gcc_lib timeout.exp
|
|||||||
load_gcc_lib timeout-dg.exp
|
load_gcc_lib timeout-dg.exp
|
||||||
load_gcc_lib wrapper.exp
|
load_gcc_lib wrapper.exp
|
||||||
load_gcc_lib target-utils.exp
|
load_gcc_lib target-utils.exp
|
||||||
|
load_gcc_lib dg-test-cleanup.exp
|
||||||
|
|
||||||
# Useful for debugging. Pass the name of a variable and the verbosity
|
# Useful for debugging. Pass the name of a variable and the verbosity
|
||||||
# threshold (number of -v's on the command line).
|
# threshold (number of -v's on the command line).
|
||||||
|
@ -48,6 +48,7 @@ load_gcc_lib scanwpaipa.exp
|
|||||||
load_gcc_lib timeout-dg.exp
|
load_gcc_lib timeout-dg.exp
|
||||||
load_gcc_lib torture-options.exp
|
load_gcc_lib torture-options.exp
|
||||||
load_gcc_lib fortran-modules.exp
|
load_gcc_lib fortran-modules.exp
|
||||||
|
load_gcc_lib dg-test-cleanup.exp
|
||||||
|
|
||||||
set dg-do-what-default run
|
set dg-do-what-default run
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user