2007-12-19 Pierre Muller <muller@ics-u-strasbg.fr>
authorPierre Muller <muller@sourceware.org>
Wed, 19 Dec 2007 14:40:37 +0000 (14:40 +0000)
committerPierre Muller <muller@sourceware.org>
Wed, 19 Dec 2007 14:40:37 +0000 (14:40 +0000)
* (gdb.base/watch_thread_num.exp): Add breakpoint at thread_function
and record first explicitly generated thread number.
Use that thread number for thread specific watchpoint test.
Add iteration number to repetitive tests.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/watch_thread_num.exp

index a75108b..32d59f6 100644 (file)
@@ -1,3 +1,10 @@
+2007-12-19  Pierre Muller  <muller@ics-u-strasbg.fr>
+
+       * (gdb.base/watch_thread_num.exp): Add breakpoint at thread_function
+       and record first explicitly generated thread number. 
+       Use that thread number for thread specific watchpoint test.
+       Add iteration number to repetitive tests.
+
 2007-12-16  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
            Jim Blandy  <jimb@codesourcery.com>
 
index d5114ef..5fb7f23 100644 (file)
@@ -54,11 +54,28 @@ gdb_test "watch shared_var thread" "A syntax error in expression, near `thread'\
 
 gdb_test "Next 5" ""
 
-gdb_test "watch shared_var thread 2" "Hardware watchpoint 2: shared_var" "Watchpoint on shared variable"
-gdb_test "info breakpoint 2" "stop only in thread 2"
+gdb_test "break thread_function" "Breakpoint \[0-9\].*" \
+  "Set breakpoint at thread_function"
 
-for {set i 0} {$i < 10} {incr i 1} {
-gdb_test "continue" "Hardware watchpoint 2: shared_var.*" "Watchpoint triggered"
-gdb_test "thread" "\\\[Current thread is 2 \\\(Thread $hex \\\(LWP $decimal\\\)\\\)\\\]" "Check thread that triggered"
+gdb_test "continue" ".*Breakpoint 2.*" "Stopped in thread_function"
+
+send_gdb "thread\n"
+gdb_expect {
+  -re ".*Current thread is (\[0-9\]*).*$gdb_prompt $" { pass "Thread command" }
+  -re ".*$gdb_prompt $" { fail "Thread command" }
+  timeout { fail "(timeout) Thread command" }
+}
+
+set thread_num "$expect_out(1,string)"
+
+gdb_test "disable 2" "" "Disable breakpoint 2"
+gdb_test "watch shared_var thread $thread_num" "Hardware watchpoint 3: shared_var" "Watchpoint on shared variable"
+gdb_test "info breakpoint 3" "stop only in thread $thread_num"
+
+for {set i 1} {$i <= 10} {incr i 1} {
+gdb_test "continue" "Hardware watchpoint 3: shared_var.*" \
+  "Watchpoint triggered iteration $i"
+gdb_test "thread" ".*Current thread is $thread_num .*" \
+  "Check thread that triggered iteration $i"
 }