gdb.base/watch-bitfields.exp: Improve test
Make test messages unique and a couple other tweaks. gdb/testsuite/ 2014-09-16 Sergio Durigan Junior <sergiodj@redhat.com> Pedro Alves <palves@redhat.com> * gdb.base/watch-bitfields.exp: Pass string other than test file name to prepare_for_testing. (watch): New procedure. (expect_watchpoint): Use with_test_prefix. (top level): Factor out tests to ... (test_watch_location, test_regular_watch): ... these new procedures, and use with_test_prefix and gdb_continue_to_end.
This commit is contained in:
parent
bb9d5f81c3
commit
91c190590a
|
@ -1,3 +1,14 @@
|
|||
2014-09-16 Sergio Durigan Junior <sergiodj@redhat.com>
|
||||
Pedro Alves <palves@redhat.com>
|
||||
|
||||
* gdb.base/watch-bitfields.exp: Pass string other than test file
|
||||
name to prepare_for_testing.
|
||||
(watch): New procedure.
|
||||
(expect_watchpoint): Use with_test_prefix.
|
||||
(top level): Factor out tests to ...
|
||||
(test_watch_location, test_regular_watch): ... these new
|
||||
procedures, and use with_test_prefix and gdb_continue_to_end.
|
||||
|
||||
2014-09-16 Patrick Palka <patrick@parcs.ath.cx>
|
||||
|
||||
PR breakpoints/12526
|
||||
|
|
|
@ -17,40 +17,65 @@
|
|||
|
||||
standard_testfile
|
||||
|
||||
if {[prepare_for_testing $testfile.exp $testfile $srcfile debug]} {
|
||||
if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
|
||||
return -1
|
||||
}
|
||||
|
||||
if {![runto_main]} {
|
||||
return -1
|
||||
# Set a watchpoint watching EXPR.
|
||||
proc watch { expr } {
|
||||
global decimal
|
||||
|
||||
set expr_re [string_to_regexp $expr]
|
||||
gdb_test "watch $expr" \
|
||||
"\(Hardware \)?\[Ww\]atchpoint $decimal: $expr_re"
|
||||
}
|
||||
|
||||
# Continue inferior execution, expecting the watchpoint EXPR to be triggered
|
||||
# having old value OLD and new value NEW.
|
||||
proc expect_watchpoint { expr old new } {
|
||||
set expr_re [string_to_regexp $expr]
|
||||
gdb_test "print $expr" "\\$\\d+ = $old\\s"
|
||||
gdb_test "cont" "$expr_re\\s.*Old value = $old\\s+New value = $new\\s.*"
|
||||
gdb_test "print $expr" "\\$\\d+ = $new\\s"
|
||||
with_test_prefix "$expr: $old->$new" {
|
||||
set expr_re [string_to_regexp $expr]
|
||||
gdb_test "print $expr" "\\$\\d+ = $old\\s" "print expression before"
|
||||
gdb_test "continue" "$expr_re\\s.*Old value = $old\\s+New value = $new\\s.*"
|
||||
gdb_test "print $expr" "\\$\\d+ = $new\\s" "print expression after"
|
||||
}
|
||||
}
|
||||
|
||||
# Check that -location watchpoints against bitfields trigger properly.
|
||||
gdb_test "watch -l q.a"
|
||||
gdb_test "watch -l q.e"
|
||||
expect_watchpoint "q.a" 0 1
|
||||
expect_watchpoint "q.e" 0 5
|
||||
expect_watchpoint "q.a" 1 0
|
||||
expect_watchpoint "q.e" 5 4
|
||||
gdb_test "cont" ".*exited normally.*"
|
||||
proc test_watch_location {} {
|
||||
with_test_prefix "-location watch against bitfields" {
|
||||
if {![runto_main]} {
|
||||
return -1
|
||||
}
|
||||
|
||||
# Check that regular watchpoints against expressions involving bitfields
|
||||
# trigger properly.
|
||||
runto_main
|
||||
gdb_test "watch q.d + q.f + q.g"
|
||||
expect_watchpoint "q.d + q.f + q.g" 0 4
|
||||
expect_watchpoint "q.d + q.f + q.g" 4 10
|
||||
expect_watchpoint "q.d + q.f + q.g" 10 3
|
||||
expect_watchpoint "q.d + q.f + q.g" 3 2
|
||||
expect_watchpoint "q.d + q.f + q.g" 2 1
|
||||
expect_watchpoint "q.d + q.f + q.g" 1 0
|
||||
gdb_test "cont" ".*exited normally.*"
|
||||
watch "-location q.a"
|
||||
watch "-location q.e"
|
||||
expect_watchpoint "q.a" 0 1
|
||||
expect_watchpoint "q.e" 0 5
|
||||
expect_watchpoint "q.a" 1 0
|
||||
expect_watchpoint "q.e" 5 4
|
||||
gdb_continue_to_end
|
||||
}
|
||||
}
|
||||
|
||||
# Check that regular watchpoints against expressions involving
|
||||
# bitfields trigger properly.
|
||||
proc test_regular_watch {} {
|
||||
with_test_prefix "regular watch against bitfields" {
|
||||
if {![runto_main]} {
|
||||
return -1
|
||||
}
|
||||
|
||||
watch "q.d + q.f + q.g"
|
||||
expect_watchpoint "q.d + q.f + q.g" 0 4
|
||||
expect_watchpoint "q.d + q.f + q.g" 4 10
|
||||
expect_watchpoint "q.d + q.f + q.g" 10 3
|
||||
expect_watchpoint "q.d + q.f + q.g" 3 2
|
||||
expect_watchpoint "q.d + q.f + q.g" 2 1
|
||||
expect_watchpoint "q.d + q.f + q.g" 1 0
|
||||
gdb_continue_to_end
|
||||
}
|
||||
}
|
||||
|
||||
test_watch_location
|
||||
test_regular_watch
|
||||
|
|
Loading…
Reference in New Issue