diff options
Diffstat (limited to 'gdb/testsuite/lib/gdb.exp')
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index cb277bed82..3e71adcae6 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -1105,38 +1105,44 @@ proc gdb_expect { args } { proc gdb_expect_list {test sentinal list} { global gdb_prompt set index 0 - while { ${index} >= 0 && ${index} < [llength ${list}] } { + set ok 1 + while { ${index} < [llength ${list}] } { set pattern [lindex ${list} ${index}] set index [expr ${index} + 1] if { ${index} == [llength ${list}] } { - gdb_expect { - -re "${pattern}${sentinal}" { - pass "${test} (sentinal)" - } - timeout { - fail "(timeout on sentinal) ${test}" - set index -1 + if { ${ok} } { + gdb_expect { + -re "${pattern}${sentinal}" { + pass "${test}, pattern ${index} + sentinal" + } + timeout { + fail "${test}, pattern ${index} + sentinal (timeout)" + set ok 0 + } } + } else { + fail "${test}, pattern ${index} + sentinal" } } else { - gdb_expect { - -re "${pattern}" { - pass "${test} (line ${index})" - } - -re "${sentinal}" { - fail "${test} (line ${index})" - set index -1 - } - timeout { - fail "(timeout on line ${index}) ${test}" - set index -1 + if { ${ok} } { + gdb_expect { + -re "${pattern}" { + pass "${test}, pattern ${index}" + } + -re "${sentinal}" { + fail "${test}, pattern ${index}" + set ok 0 + } + timeout { + fail "${test}, pattern ${index} (timeout)" + set ok 0 + } } + } else { + fail "${test}, pattern ${index}" } } } - if { ${index} >= 0 } { - pass "${test}" - } } # |