aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.fortran/array-slices.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.fortran/array-slices.exp')
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices.exp30
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
+ }
}
}