aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2016-06-21 01:11:56 +0100
committerPedro Alves <palves@redhat.com>2016-06-21 01:11:56 +0100
commit468afe6c5fc9c80b8c175f3f13702ffaa6308400 (patch)
tree81b24033463a87673f235c67b153cbee86ca36a9 /gdb/testsuite
parent51f77c3704a6e5c28fdcdd6d6e0aeb97ebdb343f (diff)
downloadgdb-468afe6c5fc9c80b8c175f3f13702ffaa6308400.zip
gdb-468afe6c5fc9c80b8c175f3f13702ffaa6308400.tar.gz
gdb-468afe6c5fc9c80b8c175f3f13702ffaa6308400.tar.bz2
Send deleted watchpoint-scope output to all UIs
Testing with: make check RUNTESTFLAGS="SEPARATE_MI_TTY=1" shows this, in gdb.mi/mi-watch.exp: -*stopped,reason="watchpoint-scope",wpnum="2",frame={addr="0x00000000004005cb", +*stopped,frame={addr="0x00000000004005cb", (...) -PASS: gdb.mi/mi-watch.exp: hw: watchpoint trigger +FAIL: gdb.mi/mi-watch.exp: hw: watchpoint trigger (unknown output after running) That is, we lose the "watchpoint-scope" output on the MI UI. This commit fixes it, and makes the test run with MI running as both main UI and separate UI. gdb/ChangeLog: 2016-06-21 Pedro Alves <palves@redhat.com> * breakpoint.c (watchpoint_check): Send watchpoint-deleted output to all UIs. gdb/testsuite/ChangeLog: 2016-06-21 Pedro Alves <palves@redhat.com> * gdb.mi/mi-watch.exp (test_watchpoint_creation_and_listing) (test_awatch_creation_and_listing) (test_rwatch_creation_and_listing, test_watchpoint_triggering): Remove 'type' parameter. (test_watchpoint_all): New parameter mi_mode. Remove with_test_prefix. (top level): Use foreach_with_prefix, and add main/separate UI MI testing axis.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog11
-rw-r--r--gdb/testsuite/gdb.mi/mi-watch.exp85
2 files changed, 55 insertions, 41 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 888d6cd..7e1e9b0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,16 @@
2016-06-21 Pedro Alves <palves@redhat.com>
+ * gdb.mi/mi-watch.exp (test_watchpoint_creation_and_listing)
+ (test_awatch_creation_and_listing)
+ (test_rwatch_creation_and_listing, test_watchpoint_triggering):
+ Remove 'type' parameter.
+ (test_watchpoint_all): New parameter mi_mode. Remove
+ with_test_prefix.
+ (top level): Use foreach_with_prefix, and add main/separate UI MI
+ testing axis.
+
+2016-06-21 Pedro Alves <palves@redhat.com>
+
* README (Testsuite Parameters): Document FORCE_SEPARATE_MI_TTY.
* lib/gdb.exp (default_gdb_exit): Clear inferior_spawn_id.
* lib/mi-support.exp (mi_uncatched_gdb_exit): Unset
diff --git a/gdb/testsuite/gdb.mi/mi-watch.exp b/gdb/testsuite/gdb.mi/mi-watch.exp
index f4b54bb..29fc471 100644
--- a/gdb/testsuite/gdb.mi/mi-watch.exp
+++ b/gdb/testsuite/gdb.mi/mi-watch.exp
@@ -24,9 +24,6 @@ load_lib mi-support.exp
set MIFLAGS "-i=mi"
gdb_exit
-if [mi_gdb_start] {
- continue
-}
standard_testfile basics.c
@@ -35,7 +32,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-proc test_watchpoint_creation_and_listing {type} {
+proc test_watchpoint_creation_and_listing {} {
global mi_gdb_prompt
global srcfile
global hex
@@ -59,7 +56,7 @@ proc test_watchpoint_creation_and_listing {type} {
}
# UNUSED at the time
-proc test_awatch_creation_and_listing {type} {
+proc test_awatch_creation_and_listing {} {
global mi_gdb_prompt
global srcfile
global hex
@@ -86,7 +83,7 @@ proc test_awatch_creation_and_listing {type} {
}
# UNUSED at the time
-proc test_rwatch_creation_and_listing {type} {
+proc test_rwatch_creation_and_listing {} {
global mi_gdb_prompt
global srcfile
global hex
@@ -112,7 +109,7 @@ proc test_rwatch_creation_and_listing {type} {
"delete read watchpoint"
}
-proc test_watchpoint_triggering {type} {
+proc test_watchpoint_triggering {} {
global mi_gdb_prompt
global hex fullname_syntax srcfile
@@ -137,44 +134,50 @@ proc test_watchpoint_triggering {type} {
"watchpoint trigger"
}
-proc test_watchpoint_all {type} {
- with_test_prefix "$type" {
- upvar srcdir srcdir
- upvar subdir subdir
- upvar binfile binfile
-
- mi_delete_breakpoints
- mi_gdb_reinitialize_dir $srcdir/$subdir
- mi_gdb_load ${binfile}
-
- mi_runto callee4
- test_watchpoint_creation_and_listing $type
- #test_rwatch_creation_and_listing $type
- #test_awatch_creation_and_listing $type
- test_watchpoint_triggering $type
+proc test_watchpoint_all {mi_mode type} {
+ upvar srcdir srcdir
+ upvar subdir subdir
+ upvar binfile binfile
+
+ if {$type == "hw" && [target_info exists gdb,no_hardware_watchpoints] } {
+ return
}
-}
-# Run the tests twice, once using software watchpoints...
-mi_gdb_test "567-gdb-set can-use-hw-watchpoints 0" \
- "567\\^done" \
- "hw watchpoints toggle (1)"
-test_watchpoint_all sw
+ mi_gdb_exit
-mi_gdb_exit
+ if {$mi_mode == "separate"} {
+ set start_ops "separate-mi-tty"
+ } else {
+ set start_ops ""
+ }
+ if [mi_gdb_start $start_ops] {
+ return
+ }
-# ... and unless requested otherwise...
-if [target_info exists gdb,no_hardware_watchpoints] {
- return 0
-}
+ if {$type == "sw"} {
+ set option 0
+ } else {
+ set option 1
+ }
+ mi_gdb_test "567-gdb-set can-use-hw-watchpoints $option" \
+ "567\\^done" \
+ "hw watchpoints toggle"
-mi_gdb_start
+ mi_delete_breakpoints
+ mi_gdb_reinitialize_dir $srcdir/$subdir
+ mi_gdb_load ${binfile}
-# ... once using hardware watchpoints (if available).
-mi_gdb_test "890-gdb-set can-use-hw-watchpoints 1" \
- "890\\^done" \
- "hw watchpoints toggle (2)"
-test_watchpoint_all hw
+ mi_runto callee4
+ test_watchpoint_creation_and_listing
+ #test_rwatch_creation_and_listing
+ #test_awatch_creation_and_listing
+ test_watchpoint_triggering
+}
-mi_gdb_exit
-return 0
+# Run the tests twice, once using software watchpoints, and another
+# with hardware watchpoints.
+foreach_with_prefix mi-mode {"main" "separate"} {
+ foreach_with_prefix wp-type {"sw" "hw"} {
+ test_watchpoint_all ${mi-mode} ${wp-type}
+ }
+}