diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index f2c590e83f..3886227fd8 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-02-29 Maciej W. Rozycki + + * lib/gdb.exp (gdb_expect): Of all the timeouts provided always + select the largest. + 2008-02-28 Daniel Jacobowitz * gdb.base/annota1.exp, gdb.cp/annota2.exp: Update for fewer diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index cbfa253579..0c0eafcd9e 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -1776,34 +1776,44 @@ proc send_gdb { string } { proc gdb_expect { args } { if { [llength $args] == 2 && [lindex $args 0] != "-re" } { - set gtimeout [lindex $args 0]; + set atimeout [lindex $args 0]; set expcode [list [lindex $args 1]]; } else { - upvar timeout timeout; - set expcode $args; - if [target_info exists gdb,timeout] { - if [info exists timeout] { - if { $timeout < [target_info gdb,timeout] } { - set gtimeout [target_info gdb,timeout]; - } else { - set gtimeout $timeout; - } - } else { - set gtimeout [target_info gdb,timeout]; - } - } + } - if ![info exists gtimeout] { - global timeout; - if [info exists timeout] { - set gtimeout $timeout; + upvar timeout timeout; + + if [target_info exists gdb,timeout] { + if [info exists timeout] { + if { $timeout < [target_info gdb,timeout] } { + set gtimeout [target_info gdb,timeout]; } else { - # Eeeeew. - set gtimeout 60; + set gtimeout $timeout; } + } else { + set gtimeout [target_info gdb,timeout]; } } + + if ![info exists gtimeout] { + global timeout; + if [info exists timeout] { + set gtimeout $timeout; + } + } + + if [info exists atimeout] { + if { ![info exists gtimeout] || $gtimeout < $atimeout } { + set $gtimeout $atimeout; + } + } else { + if ![info exists gtimeout] { + # Eeeeew. + set gtimeout 60; + } + } + global suppress_flag; global remote_suppress_flag; if [info exists remote_suppress_flag] {