diff options
author | Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> | 2010-03-24 22:52:47 +0000 |
---|---|---|
committer | Janis Johnson <janis@gcc.gnu.org> | 2010-03-24 22:52:47 +0000 |
commit | 5e599ebb7dfdbbfefe346bc5a2731746a905b643 (patch) | |
tree | 2072fcb7218f4f64d1e3de60890f956a3892ec7c /gcc/testsuite | |
parent | 9debda96f54bfe9cbc2dbecc580d5099765432fe (diff) | |
download | gcc-5e599ebb7dfdbbfefe346bc5a2731746a905b643.zip gcc-5e599ebb7dfdbbfefe346bc5a2731746a905b643.tar.gz gcc-5e599ebb7dfdbbfefe346bc5a2731746a905b643.tar.bz2 |
re PR testsuite/41609 (Torture tests do not check "trivial.{m,mm}" for each run case.)
2010-03-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
PR testsuite/41609
* lib/objc-torture.exp (objc-set-runtime-options): New.
* objc/execute/execute.exp: Check runtime options on each pass.
* objc/execute/exceptions/exceptions.exp: Ditto.
* objc/compile/compile.exp: Ditto.
From-SVN: r157716
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/lib/objc-torture.exp | 94 | ||||
-rw-r--r-- | gcc/testsuite/objc/compile/compile.exp | 3 | ||||
-rw-r--r-- | gcc/testsuite/objc/execute/exceptions/exceptions.exp | 4 | ||||
-rw-r--r-- | gcc/testsuite/objc/execute/execute.exp | 3 |
5 files changed, 80 insertions, 30 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 12021bc..367625a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2010-03-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> + PR testsuite/41609 + * lib/objc-torture.exp (objc-set-runtime-options): New. + * objc/execute/execute.exp: Check runtime options on each pass. + * objc/execute/exceptions/exceptions.exp: Ditto. + * objc/compile/compile.exp: Ditto. + PR testsuite/42348 * lib/target-supports.exp: Add support for ObjC/ObjC++ tools in standard tests. diff --git a/gcc/testsuite/lib/objc-torture.exp b/gcc/testsuite/lib/objc-torture.exp index 7aba887..0b6362b 100644 --- a/gcc/testsuite/lib/objc-torture.exp +++ b/gcc/testsuite/lib/objc-torture.exp @@ -18,24 +18,61 @@ # This file was written by Rob Savoye. (rob@cygnus.com) load_lib file-format.exp +load_lib target-supports.exp -if ![info exists OBJC_RUNTIME_OPTIONS] { - set OBJC_RUNTIME_OPTIONS "" - foreach type {-fgnu-runtime -fnext-runtime} { - global srcdir subdir +# Make sure that the runtime list is re-evaluated for each multilib. +proc objc-set-runtime-options { dowhat args } { + global OBJC_RUNTIME_OPTIONS + if ![info exists OBJC_RUNTIME_OPTIONS] { + set rtlist [list "-fgnu-runtime" "-fnext-runtime" ] + } else { + set rtlist [list "-fgnu-runtime" "-fnext-runtime" ] + foreach other $OBJC_RUNTIME_OPTIONS { + # Don't do tests twice... + if { ( $other == "-fnext-runtime" || $other == "-fgnu-runtime" ) } { + continue + } + lappend rtlist $other + } + } - set comp_output [objc_target_compile \ - "$srcdir/$subdir/trivial.m" "trivial.exe" executable "additional_flags=$type"] + set OBJC_RUNTIME_OPTIONS "" - # If we get any error, then we failed - if ![string match "" $comp_output] then { - continue; + foreach type $rtlist { + global srcdir subdir target_triplet tmpdir + + set options "additional_flags=$type" + if [info exists args] { + lappend options $args + } + verbose "options $options" + set test_obj "trivial.exe" + set comp_output [objc_target_compile \ + "$srcdir/$subdir/trivial.m" $test_obj executable $options] + + # If we get any error, then we failed. + if ![string match "" $comp_output] then { + remote_file build delete $test_obj + continue; + } + if [info exists dowhat] { + if { $dowhat == "execute" } { + set result [objc_load "$tmpdir/$test_obj" "" ""] + set status [lindex $result 0] + set output [lindex $result 1] + if { $status != "pass" } { + remote_file build delete $test_obj + verbose -log "trivial execute failed with $status $output" + continue; + } + } + } + remote_file build delete $test_obj + lappend OBJC_RUNTIME_OPTIONS $type } - lappend OBJC_RUNTIME_OPTIONS $type - } -} -verbose -log "Using the following runtimes: $OBJC_RUNTIME_OPTIONS" + verbose -log "Using the following runtimes: $OBJC_RUNTIME_OPTIONS" +} # The default option list can be overridden by # TORTURE_OPTIONS="{ { list1 } ... { listN } }" @@ -62,7 +99,7 @@ if [info exists TORTURE_OPTIONS] { } if [info exists ADDITIONAL_TORTURE_OPTIONS] { - set OBJC_TORTURE_OPTIONS \ + set OBJC_TORTURE_OPTIONS \ [concat $OBJC_TORTURE_OPTIONS $ADDITIONAL_TORTURE_OPTIONS] } @@ -150,6 +187,9 @@ proc objc-torture-execute { src args } { set oldstatus "foo" foreach option $option_list { if { $count > 0 } { + if [info exists oldexec] { + remote_file build delete $oldexec + } set oldexec $execname } set execname "${executable}${count}" @@ -164,7 +204,7 @@ proc objc-torture-execute { src args } { # torture_execute_before_{compile,execute} can be set by the .x script # (if present) if [info exists torture_eval_before_compile] { - set ignore_me [eval $torture_eval_before_compile] + set ignore_me [eval $torture_eval_before_compile] } remote_file build delete $execname @@ -188,6 +228,7 @@ proc objc-torture-execute { src args } { if [target_info exists no_long_long] then { if [expr [search_for $src "long long"]] then { unsupported "$testcase execution, $option" + remote_file build delete $execname continue } } @@ -197,7 +238,7 @@ proc objc-torture-execute { src args } { } if [info exists torture_eval_before_execute] { - set ignore_me [eval $torture_eval_before_execute] + set ignore_me [eval $torture_eval_before_execute] } @@ -218,6 +259,7 @@ proc objc-torture-execute { src args } { if { ![isnative] && [info exists oldexec] } { if { [remote_file build cmp $oldexec $execname] == 0 } { set skip 1 + set status $oldstatus } } if { $skip == 0 } { @@ -225,16 +267,16 @@ proc objc-torture-execute { src args } { set status [lindex $result 0] set output [lindex $result 1] } - if { $oldstatus == "pass" } { - remote_file build delete $oldexec - } $status "$testcase execution, $option" set oldstatus $status + # for each option + } + # tidy up + if [info exists execname] { + remote_file build delete $execname } - if [info exists status] { - if { $status == "pass" } { - remote_file build delete $execname - } + if [info exists oldexec] { + remote_file build delete $oldexec } } @@ -293,9 +335,9 @@ proc objc-torture { args } { # don't pass -funroll[-all]-loops. global torture_with_loops torture_without_loops if [expr [search_for $src "for*("]+[search_for $src "while*("]] then { - set option_list $torture_with_loops + set option_list $torture_with_loops } else { - set option_list $torture_without_loops + set option_list $torture_without_loops } # loop through all the options @@ -307,7 +349,7 @@ proc objc-torture { args } { # torture_execute_before_compile is set by the .x script (if present) if [info exists torture_eval_before_compile] { - set ignore_me [eval $torture_eval_before_compile] + set ignore_me [eval $torture_eval_before_compile] } objc-torture-compile $src "$option $options" diff --git a/gcc/testsuite/objc/compile/compile.exp b/gcc/testsuite/objc/compile/compile.exp index a892736..da28021 100644 --- a/gcc/testsuite/objc/compile/compile.exp +++ b/gcc/testsuite/objc/compile/compile.exp @@ -27,7 +27,8 @@ load_lib objc-torture.exp load_lib torture-options.exp torture-init -set-torture-options $OBJC_TORTURE_OPTIONS $OBJC_RUNTIME_OPTIONS +objc-set-runtime-options "compile" +set-torture-options $OBJC_TORTURE_OPTIONS $OBJC_RUNTIME_OPTIONS # # main test loop diff --git a/gcc/testsuite/objc/execute/exceptions/exceptions.exp b/gcc/testsuite/objc/execute/exceptions/exceptions.exp index bd0f993..60d833e 100644 --- a/gcc/testsuite/objc/execute/exceptions/exceptions.exp +++ b/gcc/testsuite/objc/execute/exceptions/exceptions.exp @@ -25,13 +25,13 @@ if $tracelevel then { set additional_flags "" lappend additional_flags "-fobjc-exceptions" - # load support procs load_lib objc-torture.exp load_lib torture-options.exp torture-init -set-torture-options $OBJC_TORTURE_OPTIONS $OBJC_RUNTIME_OPTIONS +objc-set-runtime-options "execute" "additional_flags=-fobjc-exceptions" +set-torture-options $OBJC_TORTURE_OPTIONS $OBJC_RUNTIME_OPTIONS # # main test loop diff --git a/gcc/testsuite/objc/execute/execute.exp b/gcc/testsuite/objc/execute/execute.exp index 4985d96..539c4fb 100644 --- a/gcc/testsuite/objc/execute/execute.exp +++ b/gcc/testsuite/objc/execute/execute.exp @@ -28,7 +28,8 @@ load_lib objc-torture.exp load_lib torture-options.exp torture-init -set-torture-options $OBJC_TORTURE_OPTIONS $OBJC_RUNTIME_OPTIONS +objc-set-runtime-options "execute" +set-torture-options $OBJC_TORTURE_OPTIONS $OBJC_RUNTIME_OPTIONS # # main test loop |