summaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorSandra Loosemore <sandra@codesourcery.com>2015-09-08 19:49:04 -0700
committerSandra Loosemore <sandra@codesourcery.com>2015-09-08 19:49:04 -0700
commitc0fa8fbd1c2f02921b90083e595a8452d3d51ba2 (patch)
treea1d6b1d8fb7a8b797cc196afd54b842a842476e7 /gdb/testsuite
parenta79762eef0dddb25fff4f08e208944210b186c9d (diff)
downloadbinutils-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/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.threads/hand-call-in-threads.exp21
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.