Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Yao Qi <yao@codesourcery.com>
To: <gdb-patches@sourceware.org>
Subject: [PATCH 06/11] mi-break.exp.
Date: Fri, 28 Sep 2012 00:05:00 -0000	[thread overview]
Message-ID: <1348790666-2544-7-git-send-email-yao@codesourcery.com> (raw)
In-Reply-To: <1348790666-2544-1-git-send-email-yao@codesourcery.com>

gdb/testsuite:

2012-09-27  Yao Qi  <yao@codesourcery.com>

	* gdb.mi/mi-break.exp: Remove.
	* gdb.mi/mi2-break.exp: Merged from mi-break.exp.
---
 gdb/testsuite/gdb.mi/mi-break.exp  |  260 ------------------------------------
 gdb/testsuite/gdb.mi/mi2-break.exp |  128 ++++++++++++++++--
 2 files changed, 116 insertions(+), 272 deletions(-)
 delete mode 100644 gdb/testsuite/gdb.mi/mi-break.exp

diff --git a/gdb/testsuite/gdb.mi/mi-break.exp b/gdb/testsuite/gdb.mi/mi-break.exp
deleted file mode 100644
index 573f484..0000000
--- a/gdb/testsuite/gdb.mi/mi-break.exp
+++ /dev/null
@@ -1,260 +0,0 @@
-# Copyright 1999, 2001, 2004, 2006-2012 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-#
-# Test essential Machine interface (MI) operations
-#
-# Verify that, using the MI, we can run a simple program and perform basic
-# debugging activities like: insert breakpoints, run the program,
-# step, next, continue until it ends and, last but not least, quit.
-#
-# The goal is not to test gdb functionality, which is done by other tests,
-# but to verify the correct output response to MI operations.
-#
-
-load_lib mi-support.exp
-set MIFLAGS "-i=mi"
-
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
-standard_testfile basics.c
-
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
-     untested mi-break.exp
-     return -1
-}
-
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
-
-# Locate line numbers in basics.c.
-set line_callee4_head  [gdb_get_line_number "callee4 ("]
-set line_callee4_body  [expr $line_callee4_head + 2]
-set line_callee3_head  [gdb_get_line_number "callee3 ("]
-set line_callee3_body  [expr $line_callee3_head + 2]
-set line_callee2_head  [gdb_get_line_number "callee2 ("]
-set line_callee2_body  [expr $line_callee2_head + 2]
-set line_callee1_head  [gdb_get_line_number "callee1 ("]
-set line_callee1_body  [expr $line_callee1_head + 2]
-set line_main_head     [gdb_get_line_number "main ("]
-set line_main_body     [expr $line_main_head + 2]
-set line_callme_head   [gdb_get_line_number "callme ("]
-set line_callme_body   [expr $line_callme_head + 2]
-
-set fullname "fullname=\"${fullname_syntax}${srcfile}\""
-
-proc test_tbreak_creation_and_listing {} {
-    global mi_gdb_prompt
-    global srcfile
-    global hex
-    global line_callee4_head line_callee4_body
-    global line_callee3_head line_callee3_body
-    global line_callee2_head line_callee2_body
-    global line_callee1_head line_callee1_body
-    global line_main_head    line_main_body
-    global fullname
-
-    # Insert some breakpoints and list them
-    # Also, disable some so they do not interfere with other tests
-    # Tests:
-    # -break-insert -t main
-    # -break-insert -t basics.c:callee2
-    # -break-insert -t basics.c:$line_callee3_head
-    # -break-insert -t srcfile:$line_callee4_head
-    # -break-list
-
-    mi_create_breakpoint "-t main" 1 del main ".*basics.c" $line_main_body $hex \
-             "break-insert -t operation"
-
-    mi_create_breakpoint "-t basics.c:callee2" 2 del callee2 ".*basics.c" $line_callee2_body $hex \
-             "insert temp breakpoint at basics.c:callee2"
-
-    mi_create_breakpoint "-t basics.c:$line_callee3_head" 3 del callee3 ".*basics.c" $line_callee3_head $hex \
-             "insert temp breakpoint at basics.c:\$line_callee3_head"
-
-    # Getting the quoting right is tricky.  That is "\"<file>\":$line_callee4_head"
-    mi_create_breakpoint "-t \"\\\"${srcfile}\\\":$line_callee4_head\"" 4 del callee4 ".*basics.c" $line_callee4_head $hex \
-             "insert temp breakpoint at \"<fullfilename>\":\$line_callee4_head"
-
-    mi_gdb_test "666-break-list" \
-     	    "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\",original-location=\".*\"\}.*\\\]\}" \
-                "list of breakpoints"
-
-    mi_gdb_test "777-break-delete" \
-	    "777\\^done" \
-	    "delete temp breakpoints"
-}
-
-proc test_rbreak_creation_and_listing {} {
-    global mi_gdb_prompt
-    global srcfile
-    global hex
-    global line_callee4_head line_callee4_body
-    global line_callee3_head line_callee3_body
-    global line_callee2_head line_callee2_body
-    global line_callee1_head line_callee1_body
-    global line_main_head    line_main_body
-
-    # Insert some breakpoints and list them
-    # Also, disable some so they do not interfere with other tests
-    # Tests:
-    # -break-insert -r main
-    # -break-insert -r callee2
-    # -break-insert -r callee
-    # -break-insert -r .*llee
-    # -break-list
-
-    setup_kfail "*-*-*" mi/14270
-    mi_gdb_test "122-break-insert -r main" \
-             "122\\^done,bkpt=\{number=\"5\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_main_body\"\}" \
-             "break-insert -r operation"
-
-    setup_kfail "*-*-*" mi/14270
-    mi_gdb_test "133-break-insert -r callee2" \
-             "133\\^done,bkpt=\{number=\"6\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\}" \
-             "insert breakpoint with regexp callee2"
-
-    setup_kfail "*-*-*" mi/14270
-    mi_gdb_test "144-break-insert -r callee" \
-	    "144\\^done,bkpt=\{number=\"7\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_body\"\},bkpt=\{number=\"8\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\},bkpt=\{number=\"9\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_body\"\},bkpt=\{number=\"10\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_body\"\}" \
-             "insert breakpoint with regexp callee"
-
-    setup_kfail "*-*-*" mi/14270
-    mi_gdb_test "155-break-insert -r \.\*llee" \
-	    "155\\^done,bkpt=\{number=\"11\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_body\"\},bkpt=\{number=\"12\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\},bkpt=\{number=\"13\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_body\"\},bkpt=\{number=\"14\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_body\"\}" \
-             "insert breakpoint with regexp .*llee"
-
-    setup_kfail "*-*-*" mi/14270
-    mi_gdb_test "166-break-list" \
-	    "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\},.*\}\\\]\}" \
-                "list of breakpoints"
-
-    mi_gdb_test "177-break-delete" \
-	    "177\\^done" \
-	    "delete temp breakpoints"
-}
-
-proc test_ignore_count {} {
-    global mi_gdb_prompt
-    global line_callme_body
-
-    mi_gdb_test "-break-insert -i 1 callme" \
-        "\\^done.*ignore=\"1\".*" \
-        "insert breakpoint with ignore count at callme"
-
-    mi_run_cmd
-
-    mi_expect_stop "breakpoint-hit" "callme" "\{name=\"i\",value=\"2\"\}" ".*basics.c" $line_callme_body \
-        {"" "disp=\"keep\"" } "run to breakpoint with ignore count"
-}
-
-proc test_error {} {
-    global mi_gdb_prompt
-
-    mi_gdb_test "-break-insert function_that_does_not_exist" \
-        ".*\\^error,msg=\"Function \\\\\"function_that_does_not_exist\\\\\" not defined.\"" \
-        "breakpoint at nonexistent function"
-
-    # We used to have a bug whereby -break-insert that failed would not
-    # clear some event hooks.  As result, whenever we evaluate expression
-    # containing function call, the internal breakpoint created to handle
-    # function call would be reported, messing up MI output.
-    mi_gdb_test "-var-create V * return_1()" \
-        "\\^done,name=\"V\",numchild=\"0\",value=\"1\",type=\"int\",has_more=\"0\"" \
-        "create varobj for function call"
-
-    mi_gdb_test "-var-update *" \
-        "\\^done,changelist=\\\[\\\]" \
-        "update varobj for function call"    
-}
-
-proc test_disabled_creation {} {
-    global mi_gdb_prompt
-    global hex
-    global line_callee2_body
-
-    mi_gdb_test "-break-insert -d basics.c:callee2" \
-        "\\^done,bkpt=\{number=\"6\",type=\"breakpoint\",disp=\"keep\",enabled=\"n\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",fullname=\".*\",line=\"$line_callee2_body\",times=\"0\",original-location=\".*\"\}" \
-        "test disabled creation"
-
-    mi_gdb_test "-break-delete" \
-	    "\\^done" \
-            "test disabled creation: cleanup"
-}
-
-proc test_breakpoint_commands {} {
-    global line_callee2_body
-    global hex
-    global fullname
-
-    mi_create_breakpoint "basics.c:callee2" 7 keep callee2 ".*basics.c" $line_callee2_body $hex \
-             "breakpoint commands: insert breakpoint at basics.c:callee2"
-
-    mi_gdb_test "-break-commands 7 \"print 10\" \"continue\"" \
-        "\\^done" \
-        "breakpoint commands: set commands"
-
-    mi_gdb_test "-break-info 7" \
-    	"\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"7\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\",times=\"0\",script=\{\"print 10\",\"continue\"\},original-location=\".*\"\}.*\\\]\}" \
-        "breakpoint commands: check that commands are set"
-
-    mi_gdb_test "-break-commands 7" \
-        "\\^done" \
-        "breakpoint commands: clear commands"
-
-    mi_list_breakpoints [list [list 7 "keep" "callee2" "basics.c" "$line_callee2_body" $hex]] \
-        "breakpoint commands: check that commands are cleared"
-
-    mi_run_to_main
-
-    mi_create_breakpoint "basics.c:callee2" 9 keep callee2 ".*basics.c" $line_callee2_body $hex \
-             "breakpoint commands: insert breakpoint at basics.c:callee2, again"
-
-    mi_gdb_test "-break-commands 9 \"set \$i=0\" \"while \$i<10\" \"print \$i\" \"set \$i=\$i+1\" \"end\" \"continue\" " \
-        "\\^done" \
-        "breakpoint commands: set commands"
-
-    mi_send_resuming_command "exec-continue" "breakpoint commands: continue"
-
-    set test "intermediate stop and continue"
-    gdb_expect {
-        -re ".*\\\$1 = 0.*\\\$10 = 9.*\\*running" {
-	    pass $test
-	}
-        timeout {
-	    fail $test
-        }
-    }
-
-    mi_expect_stop "exited-normally" "" "" "" "" "" "test hitting breakpoint with commands"
-}
-
-test_tbreak_creation_and_listing
-test_rbreak_creation_and_listing
-
-test_ignore_count
-
-test_error
-
-test_disabled_creation
-
-test_breakpoint_commands
-
-mi_gdb_exit
-return 0
diff --git a/gdb/testsuite/gdb.mi/mi2-break.exp b/gdb/testsuite/gdb.mi/mi2-break.exp
index e1375e2..94bb347 100644
--- a/gdb/testsuite/gdb.mi/mi2-break.exp
+++ b/gdb/testsuite/gdb.mi/mi2-break.exp
@@ -55,6 +55,8 @@ set line_callee1_head  [gdb_get_line_number "callee1 ("]
 set line_callee1_body  [expr $line_callee1_head + 2]
 set line_main_head     [gdb_get_line_number "main ("]
 set line_main_body     [expr $line_main_head + 2]
+set line_callme_head   [gdb_get_line_number "callme ("]
+set line_callme_body   [expr $line_callme_head + 2]
 
 set fullname "fullname=\"${fullname_syntax}${srcfile}\""
 
@@ -92,7 +94,7 @@ proc test_tbreak_creation_and_listing {} {
              "insert temp breakpoint at \"<fullfilename>\":\$line_callee4_head"
 
     mi_gdb_test "666-break-list" \
-	    "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\",original-location=\".*\"\}.*\\\]\}" \
+     	    "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\",original-location=\".*\"\}.*\\\]\}" \
                 "list of breakpoints"
 
     mi_gdb_test "777-break-delete" \
@@ -109,7 +111,6 @@ proc test_rbreak_creation_and_listing {} {
     global line_callee2_head line_callee2_body
     global line_callee1_head line_callee1_body
     global line_main_head    line_main_body
-    global fullname
 
     # Insert some breakpoints and list them
     # Also, disable some so they do not interfere with other tests
@@ -120,29 +121,29 @@ proc test_rbreak_creation_and_listing {} {
     # -break-insert -r .*llee
     # -break-list
 
-    setup_xfail "*-*-*"
+    setup_kfail "*-*-*" mi/14270
     mi_gdb_test "122-break-insert -r main" \
-             "122\\^done,bkpt=\{number=\"5\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_main_body\"\}" \
+             "122\\^done,bkpt=\{number=\"5\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_main_body\"\}" \
              "break-insert -r operation"
 
-    setup_xfail "*-*-*"
+    setup_kfail "*-*-*" mi/14270
     mi_gdb_test "133-break-insert -r callee2" \
-             "133\\^done,bkpt=\{number=\"6\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\"\}" \
+             "133\\^done,bkpt=\{number=\"6\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\}" \
              "insert breakpoint with regexp callee2"
 
-    setup_xfail "*-*-*"
+    setup_kfail "*-*-*" mi/14270
     mi_gdb_test "144-break-insert -r callee" \
-	    "144\\^done,bkpt=\{number=\"7\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee1_body\"\},bkpt=\{number=\"8\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\"\},bkpt=\{number=\"9\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee3_body\"\},bkpt=\{number=\"10\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee4_body\"\}" \
+	    "144\\^done,bkpt=\{number=\"7\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_body\"\},bkpt=\{number=\"8\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\},bkpt=\{number=\"9\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_body\"\},bkpt=\{number=\"10\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_body\"\}" \
              "insert breakpoint with regexp callee"
 
-    setup_xfail "*-*-*"
+    setup_kfail "*-*-*" mi/14270
     mi_gdb_test "155-break-insert -r \.\*llee" \
-	    "155\\^done,bkpt=\{number=\"11\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee1_body\"\},bkpt=\{number=\"12\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\"\},bkpt=\{number=\"13\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee3_body\"\},bkpt=\{number=\"14\",addr=\"$hex\",file=\".*basics.c\",${fullname},line=\"$line_callee4_body\"\}" \
+	    "155\\^done,bkpt=\{number=\"11\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_body\"\},bkpt=\{number=\"12\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_body\"\},bkpt=\{number=\"13\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_body\"\},bkpt=\{number=\"14\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_body\"\}" \
              "insert breakpoint with regexp .*llee"
 
-    setup_xfail "*-*-*"
+    setup_kfail "*-*-*" mi/14270
     mi_gdb_test "166-break-list" \
-	    "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\"\},.*\}\\\]\}" \
+	    "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\},.*\}\\\]\}" \
                 "list of breakpoints"
 
     mi_gdb_test "177-break-delete" \
@@ -150,8 +151,111 @@ proc test_rbreak_creation_and_listing {} {
 	    "delete temp breakpoints"
 }
 
+proc test_ignore_count {} {
+    global mi_gdb_prompt
+    global line_callme_body
+
+    mi_gdb_test "-break-insert -i 1 callme" \
+        "\\^done.*ignore=\"1\".*" \
+        "insert breakpoint with ignore count at callme"
+
+    mi_run_cmd
+
+    mi_expect_stop "breakpoint-hit" "callme" "\{name=\"i\",value=\"2\"\}" ".*basics.c" $line_callme_body \
+        {"" "disp=\"keep\"" } "run to breakpoint with ignore count"
+}
+
+proc test_error {} {
+    global mi_gdb_prompt
+
+    mi_gdb_test "-break-insert function_that_does_not_exist" \
+        ".*\\^error,msg=\"Function \\\\\"function_that_does_not_exist\\\\\" not defined.\"" \
+        "breakpoint at nonexistent function"
+
+    # We used to have a bug whereby -break-insert that failed would not
+    # clear some event hooks.  As result, whenever we evaluate expression
+    # containing function call, the internal breakpoint created to handle
+    # function call would be reported, messing up MI output.
+    mi_gdb_test "-var-create V * return_1()" \
+        "\\^done,name=\"V\",numchild=\"0\",value=\"1\",type=\"int\",has_more=\"0\"" \
+        "create varobj for function call"
+
+    mi_gdb_test "-var-update *" \
+        "\\^done,changelist=\\\[\\\]" \
+        "update varobj for function call"    
+}
+
+proc test_disabled_creation {} {
+    global mi_gdb_prompt
+    global hex
+    global line_callee2_body
+
+    mi_gdb_test "-break-insert -d basics.c:callee2" \
+        "\\^done,bkpt=\{number=\"6\",type=\"breakpoint\",disp=\"keep\",enabled=\"n\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",fullname=\".*\",line=\"$line_callee2_body\",times=\"0\",original-location=\".*\"\}" \
+        "test disabled creation"
+
+    mi_gdb_test "-break-delete" \
+	    "\\^done" \
+            "test disabled creation: cleanup"
+}
+
+proc test_breakpoint_commands {} {
+    global line_callee2_body
+    global hex
+    global fullname
+
+    mi_create_breakpoint "basics.c:callee2" 7 keep callee2 ".*basics.c" $line_callee2_body $hex \
+             "breakpoint commands: insert breakpoint at basics.c:callee2"
+
+    mi_gdb_test "-break-commands 7 \"print 10\" \"continue\"" \
+        "\\^done" \
+        "breakpoint commands: set commands"
+
+    mi_gdb_test "-break-info 7" \
+    	"\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"7\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\",times=\"0\",script=\{\"print 10\",\"continue\"\},original-location=\".*\"\}.*\\\]\}" \
+        "breakpoint commands: check that commands are set"
+
+    mi_gdb_test "-break-commands 7" \
+        "\\^done" \
+        "breakpoint commands: clear commands"
+
+    mi_list_breakpoints [list [list 7 "keep" "callee2" "basics.c" "$line_callee2_body" $hex]] \
+        "breakpoint commands: check that commands are cleared"
+
+    mi_run_to_main
+
+    mi_create_breakpoint "basics.c:callee2" 9 keep callee2 ".*basics.c" $line_callee2_body $hex \
+             "breakpoint commands: insert breakpoint at basics.c:callee2, again"
+
+    mi_gdb_test "-break-commands 9 \"set \$i=0\" \"while \$i<10\" \"print \$i\" \"set \$i=\$i+1\" \"end\" \"continue\" " \
+        "\\^done" \
+        "breakpoint commands: set commands"
+
+    mi_send_resuming_command "exec-continue" "breakpoint commands: continue"
+
+    set test "intermediate stop and continue"
+    gdb_expect {
+        -re ".*\\\$1 = 0.*\\\$10 = 9.*\\*running" {
+	    pass $test
+	}
+        timeout {
+	    fail $test
+        }
+    }
+
+    mi_expect_stop "exited-normally" "" "" "" "" "" "test hitting breakpoint with commands"
+}
+
 test_tbreak_creation_and_listing
 test_rbreak_creation_and_listing
 
+test_ignore_count
+
+test_error
+
+test_disabled_creation
+
+test_breakpoint_commands
+
 mi_gdb_exit
 return 0
-- 
1.7.7.6


  parent reply	other threads:[~2012-09-28  0:05 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-31 13:29 [RFC] Merge mi-cli.exp and mi2-cli.exp Yao Qi
2012-09-03  9:08 ` Vladimir Prus
2012-09-03 15:55   ` Yao Qi
2012-09-05  0:29   ` Stan Shebs
2012-09-10 20:09     ` Tom Tromey
2012-09-11 15:15     ` Pedro Alves
2012-09-11 21:53       ` Stan Shebs
2012-09-12 15:28         ` Pedro Alves
2012-09-12 13:59       ` Yao Qi
2012-09-19 11:22 ` Yao Qi
2012-09-19 13:47   ` Pedro Alves
2012-09-21  8:40     ` Yao Qi
2012-09-28  0:04 ` [PATCH 0/11] Cleanup MI test cases Yao Qi
2012-09-28  0:04   ` [PATCH 05/11] mi-pthreads.exp Yao Qi
2012-09-28  0:04   ` [PATCH 02/11] mi-var-block.exp Yao Qi
2012-09-28  0:05   ` [PATCH 08/11] mi-var-display.exp Yao Qi
2012-09-28  0:05   ` [PATCH 09/11] mi-console.exp Yao Qi
2012-09-28  0:05   ` Yao Qi [this message]
2012-09-28  0:05   ` [PATCH 01/11] Remove mi-FOO.exp which are identical to mi2-FOO.exp Yao Qi
2012-09-28  0:05   ` [PATCH 11/11] mi-syn-frame.exp Yao Qi
2012-09-28  0:05   ` [PATCH 07/11] mi-var-cmd.exp Yao Qi
2012-09-28  0:05   ` [PATCH 03/11] mi-file.exp Yao Qi
2012-09-28  0:05   ` [PATCH 04/11] mi-basics.exp Yao Qi
2012-09-28  0:05   ` [PATCH 10/11] mi-stack.exp Yao Qi
2012-09-28 19:36   ` [PATCH 0/11] Cleanup MI test cases Pedro Alves
2012-10-12  9:47     ` Yao Qi
2012-10-12 10:05       ` Pedro Alves
2012-10-14 12:25         ` [committed] : " Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1348790666-2544-7-git-send-email-yao@codesourcery.com \
    --to=yao@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox