+2015-09-08 Sandra Loosemore <sandra@codesourcery.com>
+
+ * gdb.threads/hand-call-in-threads.exp: Make sure the thread
+ command actually switches threads. Give up on remaining
+ tests if target fails to stop at breakpoint.
+
2015-09-03 Pierre-Marie de Rodat <derodat@adacore.com>
* gdb.ada/funcall_char.exp: New testcase.
# Thread numbering in gdb is origin-1, so begin numbering at 1.
for { set i 1 } { $i <= $total_nr_threads } { incr i } {
set thread_nr $i
- gdb_test "thread $thread_nr" ".*" \
+ gdb_test "thread $thread_nr" \
+ ".*Switching to thread $thread_nr.*" \
"prepare to make hand call, thread $thread_nr"
- gdb_test "call hand_call()" "Breakpoint 3, .*" \
- "hand call, thread $thread_nr"
+ gdb_test_multiple "call hand_call()" "" {
+ -re "Breakpoint 3, .*$gdb_prompt $" {
+ pass "hand call, thread $thread_nr"
+ }
+ -re "$gdb_prompt $" {
+ fail "hand call, thread $thread_nr (got gdb prompt)"
+ }
+ timeout {
+ # If the target fails to stop at the breakpoint, it just ends
+ # up in an infinite loop in hand_call(). If this happens
+ # and we have lost the GDB prompt, no further tests in
+ # this file will work and there is no point in continuing.
+ fail "hand call, thread $thread_nr (runaway target)"
+ return 0
+ }
+ }
}
# Now have each hand-called function return.