diff options
author | Doug Evans <dje@google.com> | 2009-04-27 15:38:43 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2009-04-27 15:38:43 +0000 |
commit | b92b73c2f6ad8b32a231a63412da77d230f0a6d6 (patch) | |
tree | d84a2db7ebde78bdb4bbab6a0d9b45c9b27dcb43 /gdb/testsuite/gdb.threads/watchthreads.exp | |
parent | c067354b06cc372b318bbbc5ee5098ec6ef87bc1 (diff) | |
download | gdb-b92b73c2f6ad8b32a231a63412da77d230f0a6d6.zip gdb-b92b73c2f6ad8b32a231a63412da77d230f0a6d6.tar.gz gdb-b92b73c2f6ad8b32a231a63412da77d230f0a6d6.tar.bz2 |
* gdb.threads/watchthreads.c (main): Initialize args before starting
the threads. Plus formatting cleanup.
* gdb.threads/watchthreads.exp: Avoid errant failures due to
biased scheduling of one thread.
Diffstat (limited to 'gdb/testsuite/gdb.threads/watchthreads.exp')
-rw-r--r-- | gdb/testsuite/gdb.threads/watchthreads.exp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.threads/watchthreads.exp b/gdb/testsuite/gdb.threads/watchthreads.exp index 8859c6d..6f32af5 100644 --- a/gdb/testsuite/gdb.threads/watchthreads.exp +++ b/gdb/testsuite/gdb.threads/watchthreads.exp @@ -62,8 +62,10 @@ set args_1 0 # Watch values that will be modified by distinct threads. gdb_test "watch args\[0\]" "Hardware watchpoint 2: args\\\[0\\\]" gdb_test "watch args\[1\]" "Hardware watchpoint 3: args\\\[1\\\]" +set hwwp_2_enabled 1 +set hwwp_3_enabled 1 -set init_line [expr [gdb_get_line_number "Init value"]+1] +set init_line [gdb_get_line_number "Init value"] set inc_line [gdb_get_line_number "Loop increment"] set main_loc "main \\\(\\\) at .*watchthreads.c:$init_line" set thread0_loc "thread_function \\\(arg=0x0\\\) at .*watchthreads.c:$inc_line" @@ -114,6 +116,27 @@ for {set i 0} {$i < 30} {incr i} { } else { fail "threaded watch loop" } + + # If one of the watchpoints is disabled, we'd better not stop there. + if { !$hwwp_2_enabled && $test_flag_0 } { + fail "disabled hw watchpoint 2 triggered" + } + if { !$hwwp_3_enabled && $test_flag_1 } { + fail "disabled hw watchpoint 3 triggered" + } + + # If we get to 10 in one of the watched locations disable it so we + # see some of the other watched location. + # 10 is chosen so we're guaranteed to come through here. + if { $hwwp_2_enabled && $hwwp_3_enabled } { + if { $args_0 >= 10 && $hwwp_2_enabled } { + gdb_test "disable 2" "" + set hwwp_2_enabled 0 + } elseif { $args_1 >= 10 && $hwwp_3_enabled } { + gdb_test "disable 3" "" + set hwwp_3_enabled 0 + } + } } } |