diff options
Diffstat (limited to 'gdb/testsuite/gdb.fortran/array-slices.exp')
-rw-r--r-- | gdb/testsuite/gdb.fortran/array-slices.exp | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/gdb/testsuite/gdb.fortran/array-slices.exp b/gdb/testsuite/gdb.fortran/array-slices.exp index 8f9c012..a38276c 100644 --- a/gdb/testsuite/gdb.fortran/array-slices.exp +++ b/gdb/testsuite/gdb.fortran/array-slices.exp @@ -35,6 +35,11 @@ if {[skip_fortran_tests]} { return -1 } +# This test relies on output from the inferior. +if [target_info exists gdb,noinferiorio] { + return -1 +} + standard_testfile ".f90" load_lib fortran.exp @@ -62,12 +67,6 @@ proc run_test { repack } { return -1 } - # This test relies on output from the inferior and is not supported on - # remote targets. - if {![gdb_is_target_native]} { - return 0 - } - # Avoid libc symbols, in particular the 'array' type. gdb_test_no_output "nosharedlibrary" @@ -97,11 +96,19 @@ proc run_test { repack } { set found_final_breakpoint false set expected_result "" set func_name "" + set found_prompt false gdb_test_multiple "continue" "continue" { + -i $::inferior_spawn_id + -re ".*GDB = (\[^\r\n\]+)\r\n" { set expected_result $expect_out(1,string) - exp_continue + if {!$found_prompt} { + exp_continue + } } + + -i $::gdb_spawn_id + -re "! Display Element" { set func_name "show_elem" exp_continue @@ -119,7 +126,14 @@ proc run_test { repack } { exp_continue } -re "$gdb_prompt $" { - # We're done. + set found_prompt true + + if {$found_final_breakpoint + || ($expected_result != "" && $func_name != "")} { + # We're done. + } else { + exp_continue + } } } |