diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2015-09-08 19:49:04 -0700 |
---|---|---|
committer | Sandra Loosemore <sandra@codesourcery.com> | 2015-09-08 19:49:04 -0700 |
commit | c0fa8fbd1c2f02921b90083e595a8452d3d51ba2 (patch) | |
tree | a1d6b1d8fb7a8b797cc196afd54b842a842476e7 /gdb/testsuite | |
parent | a79762eef0dddb25fff4f08e208944210b186c9d (diff) | |
download | binutils-gdb-c0fa8fbd1c2f02921b90083e595a8452d3d51ba2.tar.gz |
Improve hand-call-in-threads.exp failure handling.
2015-09-08 Sandra Loosemore <sandra@codesourcery.com>
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.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.threads/hand-call-in-threads.exp | 21 |
2 files changed, 24 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 2a1cc072757..fdd9e9558c9 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +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. diff --git a/gdb/testsuite/gdb.threads/hand-call-in-threads.exp b/gdb/testsuite/gdb.threads/hand-call-in-threads.exp index a9b90e13e9a..64af5110d98 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. |