This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 06/11] mi-break.exp.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]