+2008-05-15 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi: Document support for torture tests.
+
2008-05-15 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
* gcov Testing:: Support for testing gcov.
* profopt Testing:: Support for testing profile-directed optimizations.
* compat Testing:: Support for testing binary compatibility.
+* Torture Tests:: Support for torture testing using multiple options.
@end menu
@node Test Idioms
compilation is expected to fail for particular options on particular
targets.
@end table
+
+@node Torture Tests
+@subsection Support for torture testing using multiple options
+
+Throughout the compiler testsuite there are several directories whose
+tests are run multiple times, each with a different set of options.
+These are known as torture tests.
+@file{gcc/testsuite/lib/torture-options.exp} defines procedures to
+set up these lists:
+
+@table @code
+@item torture-init
+Initialize use of torture lists.
+@item set-torture-options
+Set lists of torture options to use for tests with and without loops.
+Optionally combine a set of torture options with a set of other
+options, as is done with Objective-C runtime options.
+@item torture-finish
+Finalize use of torture lists.
+@end table
+
+The @file{.exp} file for a set of tests that use torture options must
+include calls to these three procecures if:
+
+@itemize bullet
+@item It calls @code{gcc-dg-runtest} and overrides @var{DG_TORTURE_OPTIONS}.
+
+@item It calls @var{$@{tool@}}@code{-torture} or
+@var{$@{tool@}}@code{-torture-execute}, where @var{tool} is @code{c},
+@code{fortran}, or @code{objc}.
+
+@item It calls @code{dg-pch}.
+@end itemize
+
+It is not necessary for a @file{.exp} file that calls @code{gcc-dg-runtest}
+to call the torture procedures if the tests should use the list in
+@var{DG_TORTURE_OPTIONS} defined in @file{gcc-dg.exp}.
+
+Most uses of torture options can override the default lists by defining
+@var{TORTURE_OPTIONS} in a @file{.dejagnurc} file.
+2008-05-15 Janis Johnson <janis187@us.ibm.com>
+
+ * lib/torture-options.exp: New support for torture options.
+ * lib/gfortran-dg.exp (gfortran-dg-runtest): Use new torture
+ procs.
+ * lib/c-torture.exp: Define C_TORTURE_OPTIONS instead of
+ TORTURE_OPTIONS; don't define torture_with_loops and
+ torture_without_loops.
+ * lib/gcc-dg.exp: Define DG_TORTURE_OPTIONS instead of
+ TORTURE_OPTIONS; don't define torture_with_loops and
+ torture_without_loops.
+ (gcc-dg-runtest): Use new torture procs if no torture options
+ defined.
+ * lib/fortran-torture.exp: Define FORTRAN_TORTURE_OPTIONS instead of
+ TORTURE_OPTIONS.
+ (fortran-torture-execute): Use torture_with_loops instead of
+ TORTURE_OPTIONS.
+ (fortran-torture): Ditto.
+ * lib/objc-torture.exp: Define OBJC_TORTURE_OPTIONS instead of
+ TORTURE_OPTIONS; don't define torture_with_loops and
+ torture_without_loops.
+ * gcc.c-torture/execute/execute.exp: Use new torture procs.
+ * gcc.c-torture/execute/builtins/builtins.exp: Ditto.
+ * gcc.c-torture/execute/ieee/ieee.exp: Ditto.
+ * gcc.c-torture/unsorted/unsorted.exp: Ditto.
+ * gfortran.fortran-torture/execute/execute.exp: Ditto.
+ * gfortran.fortran-torture/compile/compile.exp: Ditto.
+ * gcc.target/x86_64/abi/abi-x86_64.exp: Ditto.
+ * gcc.target/i386/math-torture/math-torture.exp: Define
+ MATH_TORTURE_OPTIONS, use new torture procs.
+ * gcc.dg/pch/pch.exp: Use new torture procs.
+ * gcc.dg/format/format.exp: Ditto.
+ * gcc.misc-tests/i386-prefetch.exp: Ditto.
+ * gcc.misc-tests/dectest.exp: Ditto.
+ * objc.dg/pch/pch.exp: Ditto.
+ * objc/execute/execute.exp: Ditto.
+ * objc/execute/exceptions/exceptions.exp: Ditto.
+ * objc/compile/compile.exp: Ditto.
+
2008-05-15 Richard Guenther <rguenther@suse.de>
PR tree-optimization/36245
# that needs them. They shouldn't call any external functions in case
# those functions were overridden too.
+load_lib torture-options.exp
load_lib c-torture.exp
+torture-init
+set-torture-options $C_TORTURE_OPTIONS
+
set additional_flags ""
if [istarget "powerpc-*-darwin*"] {
lappend additional_flags "-Wl,-multiply_defined,suppress"
$additional_flags
}
}
+
+torture-finish
}
# load support procs
+load_lib torture-options.exp
load_lib c-torture.exp
+torture-init
+set-torture-options $C_TORTURE_OPTIONS
+
#
# main test loop
#
c-torture-execute $src
}
+
+torture-finish
# Load support procs.
load_lib gcc-dg.exp
+load_lib torture-options.exp
# These tests come from Torbjorn Granlund's (tege@cygnus.com)
# C torture test suite, and other contributors.
strace $tracelevel
}
+torture-init
+set-torture-options $C_TORTURE_OPTIONS
+
set additional_flags ""
# We must use -ffloat-store/-mieee to ensure that excess precision on some
}
# All done.
+torture-finish
gcc_finish
# load support procs
load_lib c-torture.exp
+load_lib torture-options.exp
+
+torture-init
+set-torture-options $C_TORTURE_OPTIONS
#
# This loop will run c-torture on any *.c file found in this directory.
c-torture $testcase
}
+
+torture-finish
# Don't run this directory with any default CFLAGS, but run tests with
# and without -DWIDE.
-if [info exists TORTURE_OPTIONS] {
- set old_TORTURE_OPTIONS $TORTURE_OPTIONS
-} elseif [info exists old_TORTURE_OPTIONS] {
- unset old_TORTURE_OPTIONS
-}
-if [info exists torture_with_loops] {
- set old_torture_with_loops $torture_with_loops
-} elseif [info exists old_torture_with_loops] {
- unset old_torture_with_loops
-}
-if [info exists torture_without_loops] {
- set old_torture_without_loops $torture_without_loops
-} elseif [info exists old_torture_without_loops] {
- unset old_torture_without_loops
-}
-set TORTURE_OPTIONS [list { } { -DWIDE } ]
-set torture_with_loops [list { } { -DWIDE } ]
-set torture_without_loops [list { } { -DWIDE } ]
-
# Need to copy the format.h header.
if [is_remote host] {
remote_download host $srcdir/$subdir/format.h
}
load_lib gcc-dg.exp
+load_lib torture-options.exp
+
+torture-init
+set-torture-options [list { } { -DWIDE } ]
dg-init
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] ""
-if [info exists old_TORTURE_OPTIONS] {
- set TORTURE_OPTIONS $old_TORTURE_OPTIONS
-} else {
- unset TORTURE_OPTIONS
-}
-if [info exists old_torture_with_loops] {
- set torture_with_loops $old_torture_with_loops
-} else {
- unset torture_with_loops
-}
-if [info exists old_torture_without_loops] {
- set torture_without_loops $old_torture_without_loops
-} else {
- unset torture_without_loops
-}
+torture-finish
dg-finish
# Load support procs.
load_lib gcc-dg.exp
load_lib dg-pch.exp
+load_lib torture-options.exp
# Initialize `dg'.
dg-init
+torture-init
+set-torture-options $DG_TORTURE_OPTIONS
set old_dg_do_what_default "${dg-do-what-default}"
set dg-do-what-default "$old_dg_do_what_default"
# All done.
+torture-finish
dg-finish
#
# Contributed by Ben Elliston <bje@au.ibm.com>.
-set TORTURE_OPTIONS [list {} -O1 -O2 -O3 -Os -msoft-float]
+set DEC_TORTURE_OPTIONS [list {} -O1 -O2 -O3 -Os -msoft-float]
proc target-specific-flags {} {
set result "-frounding-math "
# Load support procs (borrow these from c-torture).
load_lib c-torture.exp
load_lib target-supports.exp
+load_lib torture-options.exp
# Skip these tests for targets that don't support this extension.
if { ![check_effective_target_dfp] } {
return
}
+torture-init
+set-torture-options $DEC_TORTURE_OPTIONS
+
note "Using tests in $testdir"
dfp-run-tests [lsort [glob -nocomplain $testdir/*.decTest]]
unset testdir
+
+torture-finish
# Load support procs.
load_lib gcc-dg.exp
+load_lib torture-options.exp
# Initialize harness.
dg-init
+torture-init
-# Save these. They are needed if testsuite loops over multiple ABIs
-set saved_torture_with_loops $torture_with_loops
-set saved_torture_without_loops $torture_without_loops
-
-set torture_with_loops $PREFETCH_NONE
-set torture_without_loops $PREFETCH_NONE
+set-torture-options $PREFETCH_NONE
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/i386-pf-none-*.c]] ""
-set torture_with_loops $PREFETCH_SSE
-set torture_without_loops $PREFETCH_SSE
+set-torture-options $PREFETCH_SSE
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/i386-pf-sse-*.c]] ""
-set torture_with_loops $PREFETCH_3DNOW
-set torture_without_loops $PREFETCH_3DNOW
+set-torture-options $PREFETCH_3DNOW
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/i386-pf-3dnow-*.c]] ""
-set torture_with_loops $PREFETCH_ATHLON
-set torture_without_loops $PREFETCH_ATHLON
+set-torture-options $PREFETCH_ATHLON
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/i386-pf-athlon-*.c]] ""
-set torture_with_loops $saved_torture_with_loops
-set torture_without_loops $saved_torture_without_loops
-
+torture-finish
dg-finish
return
}
-set TORTURE_OPTIONS [list \
+set MATH_TORTURE_OPTIONS [list \
{ -O0 } \
{ -O0 -mfpmath=387 } \
{ -O0 -msse -mno-sse2 -mfpmath=sse } \
{ -O2 -msse -mno-sse2 -mfpmath=sse,387 -ffast-math } \
{ -O2 -msse -msse2 -mfpmath=sse,387 -ffast-math } \
]
+
load_lib gcc-dg.exp
+load_lib torture-options.exp
+
+torture-init
+set-torture-options $MATH_TORTURE_OPTIONS
dg-init
gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] ""
+torture-finish
dg-finish
load_lib c-torture.exp
load_lib target-supports.exp
+load_lib torture-options.exp
if { (![istarget x86_64-*-*] && ![istarget i?86-*-*])
|| ![is-effective-target lp64] } then {
}
+torture-init
+set-torture-options $C_TORTURE_OPTIONS
set additional_flags "-W -Wall"
foreach src [lsort [find $srcdir/$subdir test_*.c]] {
}
}
}
+
+torture-finish
# load support procs
load_lib fortran-torture.exp
+load_lib torture-options.exp
+
+torture-init
+set-torture-options $FORTRAN_TORTURE_OPTIONS
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f]] {
# If we're only testing specific files and this isn't one of them, skip it.
}
fortran-torture $testcase
}
+
+torture-finish
# load support procs
load_lib fortran-torture.exp
+load_lib torture-options.exp
+
+torture-init
+set-torture-options $FORTRAN_TORTURE_OPTIONS
foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.f]] {
# If we're only testing specific files and this isn't one of them, skip it.
}
fortran-torture-execute $testcase
}
+
+torture-finish
# The default option list can be overridden by
# TORTURE_OPTIONS="{ { list1 } ... { listN } }"
-if ![info exists TORTURE_OPTIONS] {
+if [info exists TORTURE_OPTIONS] {
+ set C_TORTURE_OPTIONS $TORTURE_OPTIONS
+} else {
# It is theoretically beneficial to group all of the O2/O3 options together,
# as in many cases the compiler will generate identical executables for
# all of them--and the c-torture testsuite will skip testing identical
# Also note that -finline-functions is explicitly included in one of the
# items below, even though -O3 is also specified, because some ports may
# choose to disable inlining functions by default, even when optimizing.
- set TORTURE_OPTIONS [list \
+ set C_TORTURE_OPTIONS [list \
{ -O0 } \
{ -O1 } \
{ -O2 } \
set_ld_library_path_env_vars
}
-# Split TORTURE_OPTIONS into two choices: one for testcases with loops and
-# one for testcases without loops.
-
-set torture_with_loops $TORTURE_OPTIONS
-set torture_without_loops ""
-foreach option $TORTURE_OPTIONS {
- if ![string match "*loop*" $option] {
- lappend torture_without_loops $option
- }
-}
-
#
# c-torture-compile -- runs the Tege C-torture test
#
# The default option list can be overridden by
# TORTURE_OPTIONS="{ { list1 } ... { listN } }"
-if ![info exists TORTURE_OPTIONS] {
+if [info exists TORTURE_OPTIONS] {
+ set FORTRAN_TORTURE_OPTIONS $TORTURE_OPTIONS
+} else {
# determine if host supports vectorization, and the necessary set
# of options, based on code from testsuite/vect/vect.exp
set test_tree_vectorize 0
}
- set TORTURE_OPTIONS [list \
+ set FORTRAN_TORTURE_OPTIONS [list \
{ -O0 } { -O1 } { -O2 } \
{ -O2 -fomit-frame-pointer -finline-functions } \
{ -O2 -fomit-frame-pointer -finline-functions -funroll-loops } \
{ -Os }]
if { $test_tree_vectorize } {
- lappend TORTURE_OPTIONS $vectorizer_options
+ lappend FORTRAN_TORTURE_OPTIONS $vectorizer_options
}
}
global srcdir tmpdir
global tool
global compiler_conditional_xfail_data
- global TORTURE_OPTIONS
+ global torture_with_loops
# Check for alternate driver.
set additional_flags ""
}
# Setup the options for the testcase run.
- set option_list $TORTURE_OPTIONS
+ set option_list $torture_with_loops
set executable $tmpdir/[file tail [file rootname $src].x]
regsub "(?q)$srcdir/" $src "" testcase
proc fortran-torture { args } {
global srcdir subdir
global compiler_conditional_xfail_data
- global TORTURE_OPTIONS
+ global torture_with_loops
set src [lindex $args 0]
if { [llength $args] > 1 } {
}
# loop through all the options
- set option_list $TORTURE_OPTIONS
+ set option_list $torture_with_loops
foreach option $option_list {
# torture_compile_xfail is set by the .x script (if present)
load_lib prune.exp
load_lib libgloss.exp
load_lib target-libpath.exp
+load_lib torture-options.exp
# We set LC_ALL and LANG to C so that we get the same error messages as expected.
setenv LC_ALL C
setenv LANG C
-if ![info exists TORTURE_OPTIONS] {
+if [info exists TORTURE_OPTIONS] {
+ set DG_TORTURE_OPTIONS $TORTURE_OPTIONS
+} else {
# It is theoretically beneficial to group all of the O2/O3 options together,
# as in many cases the compiler will generate identical executables for
# all of them--and the c-torture testsuite will skip testing identical
# Also note that -finline-functions is explicitly included in one of the
# items below, even though -O3 is also specified, because some ports may
# choose to disable inlining functions by default, even when optimizing.
- set TORTURE_OPTIONS [list \
+ set DG_TORTURE_OPTIONS [list \
{ -O0 } \
{ -O1 } \
{ -O2 } \
set_ld_library_path_env_vars
}
-# Split TORTURE_OPTIONS into two choices: one for testcases with loops and
-# one for testcases without loops.
-
-set torture_with_loops $TORTURE_OPTIONS
-set torture_without_loops ""
-foreach option $TORTURE_OPTIONS {
- if ![string match "*loop*" $option] {
- lappend torture_without_loops $option
- }
-}
-
# Define gcc callbacks for dg.exp.
proc gcc-dg-test-1 { target_compile prog do_what extra_tool_flags } {
proc gcc-dg-runtest { testcases default-extra-flags } {
global runtests
+ # 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 {
+ global torture_with_loops torture_without_loops
# If we're only testing specific files and this isn't one of
# them, skip it.
if ![runtest_file_p $runtests $test] {
# Look for a loop within the source code - if we don't find one,
# don't pass -funroll[-all]-loops.
- global torture_with_loops torture_without_loops
if [expr [search_for $test "for*("]+[search_for $test "while*("]] {
set option_list $torture_with_loops
} else {
dg-test $test $flags ${default-extra-flags}
}
}
+
+ if { $existing_torture_options == 0 } {
+ torture-finish
+ }
}
proc gcc-dg-debug-runtest { target_compile trivial opt_opts testcases } {
# <http://www.gnu.org/licenses/>.
load_lib gcc-dg.exp
+load_lib torture-options.exp
# Define gfortran callbacks for dg.exp.
# as c-torture does.
proc gfortran-dg-runtest { testcases default-extra-flags } {
global runtests
- global TORTURE_OPTIONS
+ global DG_TORTURE_OPTIONS torture_with_loops
+
+ torture-init
+ set-torture-options $DG_TORTURE_OPTIONS
foreach test $testcases {
# If we're only testing specific files and this isn't one of
# look if this is dg-do-run test, in which case
# we cycle through the option list, otherwise we don't
if [expr [search_for $test "dg-do run"]] {
- set option_list $TORTURE_OPTIONS
+ set option_list $torture_with_loops
} else {
set option_list [list { -O } ]
}
dg-test $test $flags ${default-extra-flags}
}
}
+
+ torture-finish
}
proc gfortran-dg-debug-runtest { target_compile trivial opt_opts testcases } {
load_lib file-format.exp
-# The default option list can be overridden by
-# TORTURE_OPTIONS="{ { list1 } ... { listN } }"
-
if ![info exists OBJC_RUNTIME_OPTIONS] {
set OBJC_RUNTIME_OPTIONS ""
foreach type {-fgnu-runtime -fnext-runtime} {
verbose -log "Using the following runtimes: $OBJC_RUNTIME_OPTIONS"
-if ![info exists TORTURE_OPTIONS] {
+# The default option list can be overridden by
+# TORTURE_OPTIONS="{ { list1 } ... { listN } }"
+
+if [info exists TORTURE_OPTIONS] {
+ set OBJC_TORTURE_OPTIONS $TORTURE_OPTIONS
+} else {
# It is theoretically beneficial to group all of the O2/O3 options together,
# as in many cases the compiler will generate identical executables for
# all of them--and the objc-torture testsuite will skip testing identical
# Also note that -finline-functions is explicitly included in one of the
# items below, even though -O3 is also specified, because some ports may
# choose to disable inlining functions by default, even when optimizing.
- set TORTURE_OPTIONS [list \
+ set OBJC_TORTURE_OPTIONS [list \
" -O0 " \
" -O1 " \
" -O2 " \
" -Os " ]
}
-
-# Split TORTURE_OPTIONS into two choices: one for testcases with loops and
-# one for testcases without loops. Add in the objc runtime options also.
-
-set torture_with_loops ""
-set torture_without_loops ""
-foreach objc_option $OBJC_RUNTIME_OPTIONS {
- foreach option $TORTURE_OPTIONS {
-
- if ![string match "*loop*" $option] {
- lappend torture_without_loops "$option $objc_option"
- }
- lappend torture_with_loops "$option $objc_option"
- }
-}
-
-
#
# objc-torture-compile -- runs the Tege OBJC-torture test
#
--- /dev/null
+# Copyright (C) 2008 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/>.
+
+# Prepare to use a new set of torture options.
+#
+# Letting options leak from one set of tests to another can be confusing.
+# Make sure variables are not set at the time we're called, because that
+# would mean they were set without being cleared.
+proc torture-init { args } {
+ global torture_without_loops global_with_loops
+
+ if [info exists torture_without_loops] {
+ error "torture-init: torture_without_loops is not empty as expected"
+ }
+ if [info exists torture_with_loops] {
+ error "torture-init: torture_with_loops is not empty as expected"
+ }
+}
+
+# Return 1 if torture options have already been set, 0 otherwise.
+proc torture-options-exist { args } {
+ global torture_with_loops
+ return [info exists torture_with_loops]
+}
+
+# Return 1 if compiler option ARG only affects loops, 0 otherwise.
+proc contains-loop-option-p { arg } {
+ switch -glob -- $arg {
+ "*loop*" { return 1 }
+ default { return 0 }
+ }
+}
+
+# Set torture options variables for tests with and without loops.
+#
+# Argument 0 is the list to use as torture options
+# Argument 1 is the list to combine with the torture options.
+proc set-torture-options { args } {
+ global torture_with_loops torture_without_loops
+
+ set torture_list [lindex $args 0]
+
+ if { [llength $args] != 1 } {
+ set other_list [lindex $args 1]
+ } else {
+ set other_list [list {}]
+ }
+
+ set torture_with_loops ""
+ set torture_without_loops ""
+ foreach torture_opts $torture_list {
+ foreach other_opts $other_list {
+ # Remove trailing space[s] to match previous output.
+ set torture_opts [string trimright $torture_opts]
+ if ![contains-loop-option-p $torture_opts] {
+ lappend torture_without_loops "$torture_opts $other_opts"
+ }
+ lappend torture_with_loops "$torture_opts $other_opts"
+ }
+ }
+}
+
+# Finish up after using a set of torture options.
+#
+# Letting options leak from one set of tests to another can be confusing.
+# Make sure variables are set at the time we're called, and then unset
+# them to prevent interference with other sets of tests.
+proc torture-finish { args } {
+ global torture_without_loops torture_with_loops
+
+ if [info exists torture_without_loops] {
+ unset torture_without_loops
+ } else {
+ error "torture-finish: torture_without_loops is not defined"
+ }
+
+ if [info exists torture_with_loops] {
+ unset torture_with_loops
+ } else {
+ error "torture-finish: torture_with_loops is not defined"
+ }
+}
+
+# Useful for debugging .exp files.
+proc dump-torture-options { args } {
+ global torture_without_loops torture_with_loops
+
+ if [info exists torture_without_loops] {
+ verbose "torture_without_loops = \"${torture_without_loops}\"" 1
+ } else {
+ verbose "torture_without_loops is not defined" 1
+ }
+
+ if [info exists torture_with_loops] {
+ verbose "torture_with_loops = \"${torture_with_loops}\"" 1
+ } else {
+ verbose "torture_with_loops is not defined" 1
+ }
+}
# Load support procs.
load_lib objc-dg.exp
load_lib dg-pch.exp
+load_lib torture-options.exp
# Initialize `dg'.
dg-init
+torture-init
+set-torture-options $DG_TORTURE_OPTIONS
+
set old_dg_do_what_default "${dg-do-what-default}"
# Main loop.
set dg-do-what-default "$old_dg_do_what_default"
# All done.
+torture-finish
dg-finish
# load support procs
load_lib objc-torture.exp
+load_lib torture-options.exp
+
+torture-init
+set-torture-options $OBJC_TORTURE_OPTIONS $OBJC_RUNTIME_OPTIONS
#
# main test loop
objc-torture $src
}
+
+torture-finish
# load support procs
load_lib objc-torture.exp
+load_lib torture-options.exp
+
+torture-init
+set-torture-options $OBJC_TORTURE_OPTIONS $OBJC_RUNTIME_OPTIONS
#
# main test loop
objc-torture-execute $src $additional_flags
}
+
+torture-finish
# load support procs
load_lib objc-torture.exp
+load_lib torture-options.exp
+
+torture-init
+set-torture-options $OBJC_TORTURE_OPTIONS $OBJC_RUNTIME_OPTIONS
#
# main test loop
objc-torture-execute $src
}
+
+torture-finish
+2008-05-15 Janis Johnson <janis187@us.ibm.com>
+
+ * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
+
2008-05-07 Jakub Jelinek <jakub@redhat.com>
PR middle-end/36106
load_gcc_lib target-libpath.exp
load_gcc_lib wrapper.exp
load_gcc_lib gcc-defs.exp
+load_gcc_lib torture-options.exp
load_gcc_lib gcc-dg.exp
load_gcc_lib gfortran-dg.exp