From: Sandra Loosemore Date: Wed, 9 Sep 2015 02:49:04 +0000 (-0700) Subject: Improve hand-call-in-threads.exp failure handling. X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=c0fa8fbd1c2f02921b90083e595a8452d3d51ba2;p=deliverable%2Fbinutils-gdb.git Improve hand-call-in-threads.exp failure handling. 2015-09-08 Sandra Loosemore gdb/testsuite/ * 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. --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 2a1cc07275..fdd9e9558c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2015-09-08 Sandra Loosemore + + * 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 * gdb.ada/funcall_char.exp: New testcase. diff --git a/gdb/testsuite/gdb.threads/hand-call-in-threads.exp b/gdb/testsuite/gdb.threads/hand-call-in-threads.exp index a9b90e13e9..64af5110d9 100644 --- a/gdb/testsuite/gdb.threads/hand-call-in-threads.exp +++ b/gdb/testsuite/gdb.threads/hand-call-in-threads.exp @@ -84,10 +84,25 @@ set total_nr_threads [expr $NR_THREADS + 1] # 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.