This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Improve hand-call-in-threads.exp failure handling.
- From: Sandra Loosemore <sandra at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 9 Sep 2015 02:49:58 -0000
- Subject: [binutils-gdb] Improve hand-call-in-threads.exp failure handling.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c0fa8fbd1c2f02921b90083e595a8452d3d51ba2
commit c0fa8fbd1c2f02921b90083e595a8452d3d51ba2
Author: Sandra Loosemore <sandra@codesourcery.com>
Date: Tue Sep 8 19:49:04 2015 -0700
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.
Diff:
---
gdb/testsuite/ChangeLog | 6 ++++++
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 2a1cc07..fdd9e95 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 a9b90e1..64af511 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.