This is the mail archive of the gdb-patches@sources.redhat.com 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/MI] testsuite:cleanup execution commands


Following Jason's suggestion, I cleaned up a bit of the redundant code
in the testsuite that sets a breakpoint, and runs to it. Also a few
steps/next now use the mi_next_to and mi_step_to functions.

Actually this also helps with the merge from the MI branch.

There are more, but this is a first pass.

I'll commit tomorrow.

Elena

2002-11-04  Elena Zannoni  <ezannoni@redhat.com>

        * mi-console.exp: Use mi_runto, mi_run_to_main, mi_next_to,
	mi_step_to wherever possible.
	* mi-disassemble.exp: Ditto.
	* mi-eval.exp: Ditto.
	* mi-read-memory.exp: Ditto.
	* mi-regs.exp: Ditto.
	* mi-return.exp: Ditto.
	* mi-stack.exp: Ditto.
	* mi-stepi.exp: Ditto.
	* mi-var-block.exp: Ditto.
	* mi-var-cmd.exp: Ditto.
	* mi-watch.exp: Ditto.
	* mi1-console.exp: Ditto.
	* mi1-disassemble.exp: Ditto.
	* mi1-eval.exp: Ditto.
	* mi1-read-memory.exp: Ditto.
	* mi1-regs.exp: Ditto.
	* mi1-return.exp: Ditto.
	* mi1-stack.exp: Ditto.
	* mi1-stepi.exp: Ditto.
	* mi1-var-block.exp: Ditto.
	* mi1-var-cmd.exp: Ditto.
        * mi1-watch.exp: Ditto.

Index: mi-console.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-console.exp,v
retrieving revision 1.8
diff -u -p -r1.8 mi-console.exp
--- mi-console.exp	17 Sep 2002 20:30:24 -0000	1.8
+++ mi-console.exp	5 Nov 2002 02:35:11 -0000
@@ -51,22 +51,7 @@ mi_delete_breakpoints
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-# Halt in main
-mi_gdb_test "200-break-insert main" \
-	"200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*mi-console.c\",line=\"13\",times=\"0\"\}" \
-	"break-insert operation"
-mi_run_cmd
-gdb_expect {
-    -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*mi-console.c\",line=\"13\"\}\r\n$mi_gdb_prompt$" {
-	    pass "run to main"
-    }
-    -re ".*$mi_gdb_prompt$" {
-	fail "run to main (2)"
-    }
-    timeout {
-	fail "run to main (timeout)"
-    }
-}
+mi_run_to_main
 
 # Next over the hello() call which will produce lots of output
 send_gdb "47-exec-next\n"
Index: mi-disassemble.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-disassemble.exp,v
retrieving revision 1.10
diff -u -p -r1.10 mi-disassemble.exp
--- mi-disassemble.exp	19 Aug 2001 01:23:43 -0000	1.10
+++ mi-disassemble.exp	5 Nov 2002 02:35:11 -0000
@@ -1,4 +1,4 @@
-#   Copyright 1999, 2000 Free Software Foundation, Inc.
+# Copyright 1999, 2000, 2002 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
@@ -43,51 +43,6 @@ mi_delete_breakpoints
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_breakpoints_creation_and_listing {} {
-    global mi_gdb_prompt
-    global srcfile
-    global hex
-
-    # Insert some breakpoints and list them
-    # Also, disable some so they do not interfere with other tests
-    # Tests:
-    # -break-insert
-    # -break-list
-    # -break-disable
-    # -break-info
-
-    mi_gdb_test "200-break-insert main" \
-             "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
-             "break-insert operation"
-
-    mi_gdb_test "204-break-list" \
-                "204\\^done,BreakpointTable=\{.*,body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}\\\]\}" \
-                "list of breakpoints"
-}
-
-proc test_running_the_program {} {
-    global mi_gdb_prompt
-    global hex
-
-    # Run the program without args
-    # Tests:
-    # -exec-run
-
-    # mi_gdb_test cannot be used for asynchronous commands because there are
-    # two prompts involved and this can lead to a race condition.
-    # FIXME: We are accepting a duplicate file and line info temporarely.
-    # The following is equivalent to a send_gdb "000-exec-run\n"
-    mi_run_cmd
-    # The running part has been checked already by mi_run_cmd
-        gdb_expect {
-	    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
-            pass "run to main"
-          }
-          -re ".*$mi_gdb_prompt$" {fail "run to main (2)"}
-          timeout {fail "run to main (timeout 2)"}
-        }
-}
-
 proc test_disassembly_only {} {
     global mi_gdb_prompt
     global hex
@@ -212,8 +167,7 @@ proc test_disassembly_bogus_args {} {
 
 }
 
-test_breakpoints_creation_and_listing
-test_running_the_program
+mi_run_to_main
 test_disassembly_only
 test_disassembly_mixed
 test_disassembly_bogus_args
Index: mi-eval.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-eval.exp,v
retrieving revision 1.6
diff -u -p -r1.6 mi-eval.exp
--- mi-eval.exp	19 Aug 2001 01:23:43 -0000	1.6
+++ mi-eval.exp	5 Nov 2002 02:35:11 -0000
@@ -46,47 +46,8 @@ mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_running_the_program {} {
-    global mi_gdb_prompt
-    global hex
-
-    # Run the program without args, then specify srgs and rerun the program
-    # Tests:
-    # -exec-run
-
-    mi_gdb_test "300-break-insert callee4" \
-             "300\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
-             "insert breakpoint at callee4"
-
-    # mi_gdb_test cannot be used for asynchronous commands because there are
-    # two prompts involved and this can lead to a race condition.
-    # The following is equivalent to a send_gdb "000-exec-run\n"
-    mi_run_cmd
-    # The running part has been checked already by mi_run_cmd
-        gdb_expect {
-	    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" \
-		    { pass "run to callee4" }
-          -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
-          timeout {fail "run to callee4 (timeout 2)"}
-        }
-	
-	send_gdb "101-exec-next\n"
-        gdb_expect {
-	    -re "101\\^running\r\n$mi_gdb_prompt" {
-		gdb_expect {
-		    -re "\[\r\n\]*101\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"9\"\}\r\n$mi_gdb_prompt$" \
-		    { pass "next in callee4" }
-	    -re ".*$mi_gdb_prompt$" {fail "next in callee4 (2)"}
-	    timeout {fail "next in callee4 (timeout 2)"}
-        }
-    }
-      -re ".*$mi_gdb_prompt$" {fail "next in callee4 (1)"}
-      timeout {fail "next in callee4 (timeout 1)"}
-    }
-
-}
-
-test_running_the_program
+mi_runto callee4
+mi_next_to "callee4" "" "basics.c" "9" "next at callee4"
 
 mi_gdb_test "211-data-evaluate-expression A" "211\\^done,value=\"1\"" "eval A"
 
Index: mi-read-memory.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-read-memory.exp,v
retrieving revision 1.7
diff -u -p -r1.7 mi-read-memory.exp
--- mi-read-memory.exp	19 Aug 2001 01:23:43 -0000	1.7
+++ mi-read-memory.exp	5 Nov 2002 02:35:12 -0000
@@ -46,21 +46,7 @@ if  { [gdb_compile "${srcdir}/${subdir}/
 
 
 mi_run_to_main
-
-#mi_next "do initialization"
-send_gdb "101-exec-next\n"
-gdb_expect {
-    -re "101\\^running\r\n$mi_gdb_prompt" {
-	gdb_expect {
-	    -re "\[\r\n\]*101\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*mi-read-memory.c\",line=\"20\"\}.*$mi_gdb_prompt$" \
-		    { pass "do initialization" }
-	    -re ".*$mi_gdb_prompt$" {fail "do initialization (2)"}
-	    timeout {fail "do initialization (timeout 2)"}
-        }
-    }
-      -re ".*$mi_gdb_prompt$" {fail "do initialization (1)"}
-      timeout {fail "do initialization (timeout 1)"}
-}
+mi_next_to "main" "" "mi-read-memory.c" "20" "next at main"
 
 mi_gdb_test "1-data-read-memory" \
 	"1\\^error,msg=\".*\"" \
Index: mi-regs.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-regs.exp,v
retrieving revision 1.10
diff -u -p -r1.10 mi-regs.exp
--- mi-regs.exp	5 Feb 2002 23:58:45 -0000	1.10
+++ mi-regs.exp	5 Nov 2002 02:35:12 -0000
@@ -45,51 +45,6 @@ mi_delete_breakpoints
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_breakpoints_creation_and_listing {} {
-    global mi_gdb_prompt
-    global srcfile
-    global hex
-
-    # Insert some breakpoints and list them
-    # Also, disable some so they do not interfere with other tests
-    # Tests:
-    # -break-insert
-    # -break-list
-    # -break-disable
-    # -break-info
-
-    mi_gdb_test "200-break-insert main" \
-             "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
-             "break-insert operation"
-
-    mi_gdb_test "204-break-list" \
-                "204\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}\\\]\}" \
-                "list of breakpoints"
-}
-
-proc test_running_the_program {} {
-    global mi_gdb_prompt
-    global hex
-
-    # Run the program without args
-    # Tests:
-    # -exec-run
-
-    # mi_gdb_test cannot be used for asynchronous commands because there are
-    # two prompts involved and this can lead to a race condition.
-    # FIXME: We are accepting a duplicate file and line info temporarely.
-    # The following is equivalent to a send_gdb "000-exec-run\n"
-    mi_run_cmd
-    # The running part has been checked already by mi_run_cmd
-        gdb_expect {
-	    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
-            pass "run to main"
-          }
-          -re ".*$mi_gdb_prompt$" {fail "run to main (2)"}
-          timeout {fail "run to main (timeout 2)"}
-        }
-}
-
 proc sparc_register_tests_no_exec { } {
 	# Test the generic IDT chip.
 	mi_gdb_test "111-data-list-register-values" \
@@ -164,8 +119,7 @@ proc sparc_register_tests { } {
 
 if [istarget "sparc-*-*"] then {
     sparc_register_tests_no_exec
-    test_breakpoints_creation_and_listing
-    test_running_the_program
+    mi_run_to_main
     sparc_register_tests
 } else {
     verbose "mi-regs.exp tests ignored for this target"
Index: mi-return.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-return.exp,v
retrieving revision 1.8
diff -u -p -r1.8 mi-return.exp
--- mi-return.exp	3 Oct 2002 22:33:15 -0000	1.8
+++ mi-return.exp	5 Nov 2002 02:35:12 -0000
@@ -46,33 +46,6 @@ mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_running_to_callee4 {} {
-    global mi_gdb_prompt
-    global hex
-
-    mi_gdb_test "200-break-insert callee4" \
-             "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
-             "break-insert operation"
-
-    mi_run_cmd
-
-    gdb_expect {
-	-re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" {
-	    pass "run to callee4"
-	}
-	-re ".*$mi_gdb_prompt$" {
-	    fail "run to callee4 (2)"
-	}
-	timeout {
-	    fail "run to callee4 (timeout)"
-	}
-    }
-
-    mi_gdb_test "205-break-delete" \
-                "205\\^done.*" \
-                "delete all breakpoints"
-
-}
 
 proc test_return_simple {} {
     global mi_gdb_prompt
@@ -87,7 +60,12 @@ proc test_return_simple {} {
     }
 }
 
-test_running_to_callee4
+mi_runto callee4
+
+mi_gdb_test "205-break-delete" \
+	"205\\^done.*" \
+	"delete all breakpoints"
+
 test_return_simple
 
 mi_gdb_exit
Index: mi-stack.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-stack.exp,v
retrieving revision 1.9
diff -u -p -r1.9 mi-stack.exp
--- mi-stack.exp	3 Oct 2002 22:33:15 -0000	1.9
+++ mi-stack.exp	5 Nov 2002 02:35:12 -0000
@@ -46,22 +46,6 @@ mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-
-mi_gdb_test "200-break-insert callee4" \
-	"200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
-	"break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
-    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" {
-	pass "run to callee4"
-    }
-    -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
-    timeout {fail "run to callee4 (timeout 2)"}
-}
-
-
 proc test_stack_frame_listing {} {
     global mi_gdb_prompt
     global hex
@@ -208,6 +192,7 @@ gdb_expect {
 
 }
 
+mi_runto callee4
 test_stack_frame_listing
 test_stack_args_listing
 test_stack_locals_listing
Index: mi-stepi.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-stepi.exp,v
retrieving revision 1.7
diff -u -p -r1.7 mi-stepi.exp
--- mi-stepi.exp	19 Aug 2001 01:23:43 -0000	1.7
+++ mi-stepi.exp	5 Nov 2002 02:35:12 -0000
@@ -46,29 +46,6 @@ mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_running_to_main {} {
-    global mi_gdb_prompt
-    global hex
-
-    mi_gdb_test "200-break-insert main" \
-             "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
-             "break-insert operation"
-
-    mi_run_cmd
-
-    gdb_expect {
-	-re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
-	    pass "run to main"
-	}
-	-re ".*$mi_gdb_prompt$" {
-	    fail "run to main (2)"
-	}
-	timeout {
-	    fail "run to main (timeout)"
-	}
-    }
-}
-
 proc test_stepi_nexti {} {
     global mi_gdb_prompt
     global hex
@@ -102,7 +79,7 @@ proc test_stepi_nexti {} {
     }
 }
 
-test_running_to_main
+mi_run_to_main
 test_stepi_nexti
 
 mi_gdb_exit
Index: mi-var-block.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-var-block.exp,v
retrieving revision 1.8
diff -u -p -r1.8 mi-var-block.exp
--- mi-var-block.exp	3 Oct 2002 20:03:55 -0000	1.8
+++ mi-var-block.exp	5 Nov 2002 02:35:12 -0000
@@ -42,19 +42,7 @@ mi_delete_breakpoints
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-mi_gdb_test "200-break-insert do_block_tests" \
-	"200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_block_tests\",file=\".*var-cmd.c\",line=\"154\",times=\"0\"\}" \
-	"break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
-    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"154\"\}\r\n$mi_gdb_prompt$" {
-	pass "run to do_block_tests"
-    }
-    -re ".*$mi_gdb_prompt$" {fail "run to do_block_tests (2)"}
-    timeout {fail "run to do_block_tests (timeout 2)"}
-}
+mi_runto do_block_tests
 
 # Test: c_variable-3.2
 # Desc: create cb and foo
@@ -67,15 +55,7 @@ mi_gdb_test "-var-create foo * foo" \
 	"create local variable foo"
 
 # step to "foo = 123;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"158\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout {
-	fail "step at do_block_tests (timeout)"
-    }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "158" "step at do_block_test"
 
 
 # Be paranoid and assume 3.2 created foo
@@ -91,15 +71,7 @@ mi_gdb_test "-var-create foo * foo" \
 	"create local variable foo"
 
 # step to "foo2 = 123;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"161\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout {
-	fail "step at do_block_tests (timeout)"
-    }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "161" "step at do_block_test"
 
 # Test: c_variable-3.4
 # Desc: check foo, cb changed
@@ -108,15 +80,7 @@ mi_gdb_test "-var-update *" \
 	"update all vars: cb foo changed"
 
 # step to "foo = 321;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"164\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout {
-	fail "step at do_block_tests (timeout)"
-    }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "164" "step at do_block_test"
 
 # Test: c_variable-3.5
 # Desc: create inner block foo
@@ -125,13 +89,7 @@ mi_gdb_test "-var-create inner_foo * foo
 	"create local variable inner_foo"
 
 # step to "foo2 = 0;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"166\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout { fail "step at do_block_tests (timeout)" }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "166" "step at do_block_test"
 
 # Test: c_variable-3.6
 # Desc: create foo2
@@ -163,13 +121,7 @@ mi_gdb_test "-var-delete inner_foo" \
 	"delete var inner_foo"
 
 # step to "foo = 0;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"168\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout { fail "step at do_block_tests (timeout)" }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "168" "step at do_block_test"
 
 # Test: c_variable-3.8
 # Desc: check that foo2 out of scope (known gdb problem)
@@ -180,14 +132,7 @@ mi_gdb_test "-var-update foo2" \
 clear_xfail *-*-*
 
 # step to "cb = 21;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"171\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout { fail "step at do_block_tests (timeout)" }
-}
-
+mi_step_to "do_block_tests" "" "var-cmd.c" "171" "step at do_block_test"
 
 # Test: c_variable-3.9
 # Desc: check that only cb is in scope (known gdb problem)
Index: mi-var-cmd.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-var-cmd.exp,v
retrieving revision 1.14
diff -u -p -r1.14 mi-var-cmd.exp
--- mi-var-cmd.exp	23 Oct 2002 23:57:28 -0000	1.14
+++ mi-var-cmd.exp	5 Nov 2002 02:35:13 -0000
@@ -70,19 +70,7 @@ mi_gdb_test "113-var-create argc * argc"
 	"&\"mi_cmd_var_create: unable to create variable object\\\\n\".*113\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
 	"create out of scope variable"
 
-mi_gdb_test "200-break-insert do_locals_tests" \
-	"200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_locals_tests\",file=\".*var-cmd.c\",line=\"106\",times=\"0\"\}" \
-	"break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
-    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_locals_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"106\"\}\r\n$mi_gdb_prompt$" {
-	pass "run to do_locals_tests"
-    }
-    -re ".*$mi_gdb_prompt$" {fail "run to do_locals_tests (2)"}
-    timeout {fail "run to do_locals_tests (timeout 2)"}
-}
+mi_runto do_locals_tests
 
 # Test: c_variable-1.4
 # Desc: create local variables
Index: mi-watch.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi-watch.exp,v
retrieving revision 1.8
diff -u -p -r1.8 mi-watch.exp
--- mi-watch.exp	19 Aug 2001 01:23:43 -0000	1.8
+++ mi-watch.exp	5 Nov 2002 02:35:13 -0000
@@ -115,31 +115,6 @@ proc test_rwatch_creation_and_listing {}
 	    "delete read watchpoint"
 }
 
-proc test_running_the_program {} {
-    global mi_gdb_prompt
-    global hex
-
-    # Run the program without args, then specify srgs and rerun the program
-    # Tests:
-    # -exec-run
-
-    mi_gdb_test "300-break-insert callee4" \
-             "300\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
-             "insert breakpoint at callee4"
-
-    # mi_gdb_test cannot be used for asynchronous commands because there are
-    # two prompts involved and this can lead to a race condition.
-    # The following is equivalent to a send_gdb "000-exec-run\n"
-    mi_run_cmd
-    # The running part has been checked already by mi_run_cmd
-        gdb_expect {
-	    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" \
-		    { pass "run to callee4" }
-          -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
-          timeout {fail "run to callee4 (timeout 2)"}
-        }
-}
-
 proc test_watchpoint_triggering {} {
     global mi_gdb_prompt
     global hex
@@ -181,7 +156,7 @@ proc test_watchpoint_triggering {} {
     }
 }
 
-test_running_the_program
+mi_runto callee4
 test_watchpoint_creation_and_listing
 #test_rwatch_creation_and_listing
 #test_awatch_creation_and_listing
Index: mi1-console.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-console.exp,v
retrieving revision 1.2
diff -u -p -r1.2 mi1-console.exp
--- mi1-console.exp	1 Oct 2002 16:01:37 -0000	1.2
+++ mi1-console.exp	5 Nov 2002 02:35:13 -0000
@@ -51,22 +51,7 @@ mi_delete_breakpoints
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-# Halt in main
-mi_gdb_test "200-break-insert main" \
-	"200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*mi-console.c\",line=\"13\",times=\"0\"\}" \
-	"break-insert operation"
-mi_run_cmd
-gdb_expect {
-    -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*mi-console.c\",line=\"13\"\}\r\n$mi_gdb_prompt$" {
-	    pass "run to main"
-    }
-    -re ".*$mi_gdb_prompt$" {
-	fail "run to main (2)"
-    }
-    timeout {
-	fail "run to main (timeout)"
-    }
-}
+mi_run_to_main
 
 # Next over the hello() call which will produce lots of output
 send_gdb "47-exec-next\n"
Index: mi1-disassemble.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-disassemble.exp,v
retrieving revision 1.2
diff -u -p -r1.2 mi1-disassemble.exp
--- mi1-disassemble.exp	1 Oct 2002 16:01:37 -0000	1.2
+++ mi1-disassemble.exp	5 Nov 2002 02:35:13 -0000
@@ -43,51 +43,6 @@ mi_delete_breakpoints
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_breakpoints_creation_and_listing {} {
-    global mi_gdb_prompt
-    global srcfile
-    global hex
-
-    # Insert some breakpoints and list them
-    # Also, disable some so they do not interfere with other tests
-    # Tests:
-    # -break-insert
-    # -break-list
-    # -break-disable
-    # -break-info
-
-    mi_gdb_test "200-break-insert main" \
-             "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
-             "break-insert operation"
-
-    mi_gdb_test "204-break-list" \
-                "204\\^done,BreakpointTable=\{.*,body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}\\\]\}" \
-                "list of breakpoints"
-}
-
-proc test_running_the_program {} {
-    global mi_gdb_prompt
-    global hex
-
-    # Run the program without args
-    # Tests:
-    # -exec-run
-
-    # mi_gdb_test cannot be used for asynchronous commands because there are
-    # two prompts involved and this can lead to a race condition.
-    # FIXME: We are accepting a duplicate file and line info temporarely.
-    # The following is equivalent to a send_gdb "000-exec-run\n"
-    mi_run_cmd
-    # The running part has been checked already by mi_run_cmd
-        gdb_expect {
-	    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
-            pass "run to main"
-          }
-          -re ".*$mi_gdb_prompt$" {fail "run to main (2)"}
-          timeout {fail "run to main (timeout 2)"}
-        }
-}
-
 proc test_disassembly_only {} {
     global mi_gdb_prompt
     global hex
@@ -212,8 +167,7 @@ proc test_disassembly_bogus_args {} {
 
 }
 
-test_breakpoints_creation_and_listing
-test_running_the_program
+mi_run_to_main
 test_disassembly_only
 test_disassembly_mixed
 test_disassembly_bogus_args
Index: mi1-eval.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-eval.exp,v
retrieving revision 1.2
diff -u -p -r1.2 mi1-eval.exp
--- mi1-eval.exp	1 Oct 2002 16:01:37 -0000	1.2
+++ mi1-eval.exp	5 Nov 2002 02:35:13 -0000
@@ -46,47 +46,8 @@ mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_running_the_program {} {
-    global mi_gdb_prompt
-    global hex
-
-    # Run the program without args, then specify srgs and rerun the program
-    # Tests:
-    # -exec-run
-
-    mi_gdb_test "300-break-insert callee4" \
-             "300\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
-             "insert breakpoint at callee4"
-
-    # mi_gdb_test cannot be used for asynchronous commands because there are
-    # two prompts involved and this can lead to a race condition.
-    # The following is equivalent to a send_gdb "000-exec-run\n"
-    mi_run_cmd
-    # The running part has been checked already by mi_run_cmd
-        gdb_expect {
-	    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" \
-		    { pass "run to callee4" }
-          -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
-          timeout {fail "run to callee4 (timeout 2)"}
-        }
-	
-	send_gdb "101-exec-next\n"
-        gdb_expect {
-	    -re "101\\^running\r\n$mi_gdb_prompt" {
-		gdb_expect {
-		    -re "\[\r\n\]*101\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"9\"\}\r\n$mi_gdb_prompt$" \
-		    { pass "next in callee4" }
-	    -re ".*$mi_gdb_prompt$" {fail "next in callee4 (2)"}
-	    timeout {fail "next in callee4 (timeout 2)"}
-        }
-    }
-      -re ".*$mi_gdb_prompt$" {fail "next in callee4 (1)"}
-      timeout {fail "next in callee4 (timeout 1)"}
-    }
-
-}
-
-test_running_the_program
+mi_runto callee4
+mi_next_to "callee4" "" "basics.c" "9" "next at callee4"
 
 mi_gdb_test "211-data-evaluate-expression A" "211\\^done,value=\"1\"" "eval A"
 
Index: mi1-read-memory.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-read-memory.exp,v
retrieving revision 1.2
diff -u -p -r1.2 mi1-read-memory.exp
--- mi1-read-memory.exp	1 Oct 2002 16:01:37 -0000	1.2
+++ mi1-read-memory.exp	5 Nov 2002 02:35:13 -0000
@@ -48,19 +48,8 @@ if  { [gdb_compile "${srcdir}/${subdir}/
 mi_run_to_main
 
 #mi_next "do initialization"
-send_gdb "101-exec-next\n"
-gdb_expect {
-    -re "101\\^running\r\n$mi_gdb_prompt" {
-	gdb_expect {
-	    -re "\[\r\n\]*101\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*mi-read-memory.c\",line=\"20\"\}.*$mi_gdb_prompt$" \
-		    { pass "do initialization" }
-	    -re ".*$mi_gdb_prompt$" {fail "do initialization (2)"}
-	    timeout {fail "do initialization (timeout 2)"}
-        }
-    }
-      -re ".*$mi_gdb_prompt$" {fail "do initialization (1)"}
-      timeout {fail "do initialization (timeout 1)"}
-}
+
+mi_next_to "main" "" "mi-read-memory.c" "20" "next at main"
 
 mi_gdb_test "1-data-read-memory" \
 	"1\\^error,msg=\".*\"" \
Index: mi1-regs.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-regs.exp,v
retrieving revision 1.2
diff -u -p -r1.2 mi1-regs.exp
--- mi1-regs.exp	1 Oct 2002 16:01:37 -0000	1.2
+++ mi1-regs.exp	5 Nov 2002 02:35:13 -0000
@@ -45,51 +45,6 @@ mi_delete_breakpoints
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_breakpoints_creation_and_listing {} {
-    global mi_gdb_prompt
-    global srcfile
-    global hex
-
-    # Insert some breakpoints and list them
-    # Also, disable some so they do not interfere with other tests
-    # Tests:
-    # -break-insert
-    # -break-list
-    # -break-disable
-    # -break-info
-
-    mi_gdb_test "200-break-insert main" \
-             "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
-             "break-insert operation"
-
-    mi_gdb_test "204-break-list" \
-                "204\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}\\\]\}" \
-                "list of breakpoints"
-}
-
-proc test_running_the_program {} {
-    global mi_gdb_prompt
-    global hex
-
-    # Run the program without args
-    # Tests:
-    # -exec-run
-
-    # mi_gdb_test cannot be used for asynchronous commands because there are
-    # two prompts involved and this can lead to a race condition.
-    # FIXME: We are accepting a duplicate file and line info temporarely.
-    # The following is equivalent to a send_gdb "000-exec-run\n"
-    mi_run_cmd
-    # The running part has been checked already by mi_run_cmd
-        gdb_expect {
-	    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
-            pass "run to main"
-          }
-          -re ".*$mi_gdb_prompt$" {fail "run to main (2)"}
-          timeout {fail "run to main (timeout 2)"}
-        }
-}
-
 proc sparc_register_tests_no_exec { } {
 	# Test the generic IDT chip.
 	mi_gdb_test "111-data-list-register-values" \
@@ -164,8 +119,7 @@ proc sparc_register_tests { } {
 
 if [istarget "sparc-*-*"] then {
     sparc_register_tests_no_exec
-    test_breakpoints_creation_and_listing
-    test_running_the_program
+    mi_run_to_main
     sparc_register_tests
 } else {
     verbose "mi-regs.exp tests ignored for this target"
Index: mi1-return.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-return.exp,v
retrieving revision 1.3
diff -u -p -r1.3 mi1-return.exp
--- mi1-return.exp	3 Oct 2002 22:33:15 -0000	1.3
+++ mi1-return.exp	5 Nov 2002 02:35:13 -0000
@@ -46,33 +46,6 @@ mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_running_to_callee4 {} {
-    global mi_gdb_prompt
-    global hex
-
-    mi_gdb_test "200-break-insert callee4" \
-             "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
-             "break-insert operation"
-
-    mi_run_cmd
-
-    gdb_expect {
-	-re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" {
-	    pass "run to callee4"
-	}
-	-re ".*$mi_gdb_prompt$" {
-	    fail "run to callee4 (2)"
-	}
-	timeout {
-	    fail "run to callee4 (timeout)"
-	}
-    }
-
-    mi_gdb_test "205-break-delete" \
-                "205\\^done.*" \
-                "delete all breakpoints"
-
-}
 
 proc test_return_simple {} {
     global mi_gdb_prompt
@@ -87,7 +60,12 @@ proc test_return_simple {} {
     }
 }
 
-test_running_to_callee4
+mi_runto callee4
+
+mi_gdb_test "205-break-delete" \
+	"205\\^done.*" \
+	"delete all breakpoints"
+
 test_return_simple
 
 mi_gdb_exit
Index: mi1-stack.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-stack.exp,v
retrieving revision 1.3
diff -u -p -r1.3 mi1-stack.exp
--- mi1-stack.exp	3 Oct 2002 22:33:15 -0000	1.3
+++ mi1-stack.exp	5 Nov 2002 02:35:14 -0000
@@ -46,22 +46,6 @@ mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-
-mi_gdb_test "200-break-insert callee4" \
-	"200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
-	"break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
-    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" {
-	pass "run to callee4"
-    }
-    -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
-    timeout {fail "run to callee4 (timeout 2)"}
-}
-
-
 proc test_stack_frame_listing {} {
     global mi_gdb_prompt
     global hex
@@ -208,6 +192,7 @@ gdb_expect {
 
 }
 
+mi_runto callee4
 test_stack_frame_listing
 test_stack_args_listing
 test_stack_locals_listing
Index: mi1-stepi.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-stepi.exp,v
retrieving revision 1.2
diff -u -p -r1.2 mi1-stepi.exp
--- mi1-stepi.exp	1 Oct 2002 16:01:37 -0000	1.2
+++ mi1-stepi.exp	5 Nov 2002 02:35:14 -0000
@@ -46,29 +46,6 @@ mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-proc test_running_to_main {} {
-    global mi_gdb_prompt
-    global hex
-
-    mi_gdb_test "200-break-insert main" \
-             "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
-             "break-insert operation"
-
-    mi_run_cmd
-
-    gdb_expect {
-	-re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
-	    pass "run to main"
-	}
-	-re ".*$mi_gdb_prompt$" {
-	    fail "run to main (2)"
-	}
-	timeout {
-	    fail "run to main (timeout)"
-	}
-    }
-}
-
 proc test_stepi_nexti {} {
     global mi_gdb_prompt
     global hex
@@ -102,7 +79,7 @@ proc test_stepi_nexti {} {
     }
 }
 
-test_running_to_main
+mi_run_to_main
 test_stepi_nexti
 
 mi_gdb_exit
Index: mi1-var-block.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-var-block.exp,v
retrieving revision 1.2
diff -u -p -r1.2 mi1-var-block.exp
--- mi1-var-block.exp	1 Oct 2002 16:01:37 -0000	1.2
+++ mi1-var-block.exp	5 Nov 2002 02:35:14 -0000
@@ -42,19 +42,7 @@ mi_delete_breakpoints
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
-mi_gdb_test "200-break-insert do_block_tests" \
-	"200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_block_tests\",file=\".*var-cmd.c\",line=\"154\",times=\"0\"\}" \
-	"break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
-    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"154\"\}\r\n$mi_gdb_prompt$" {
-	pass "run to do_block_tests"
-    }
-    -re ".*$mi_gdb_prompt$" {fail "run to do_block_tests (2)"}
-    timeout {fail "run to do_block_tests (timeout 2)"}
-}
+mi_runto do_block_tests
 
 # Test: c_variable-3.2
 # Desc: create cb and foo
@@ -67,15 +55,7 @@ mi_gdb_test "-var-create foo * foo" \
 	"create local variable foo"
 
 # step to "foo = 123;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"158\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout {
-	fail "step at do_block_tests (timeout)"
-    }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "158" "step at do_block_test"
 
 
 # Be paranoid and assume 3.2 created foo
@@ -91,15 +71,7 @@ mi_gdb_test "-var-create foo * foo" \
 	"create local variable foo"
 
 # step to "foo2 = 123;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"161\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout {
-	fail "step at do_block_tests (timeout)"
-    }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "161" "step at do_block_test"
 
 # Test: c_variable-3.4
 # Desc: check foo, cb changed
@@ -108,15 +80,7 @@ mi_gdb_test "-var-update *" \
 	"update all vars: cb foo changed"
 
 # step to "foo = 321;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"164\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout {
-	fail "step at do_block_tests (timeout)"
-    }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "164" "step at do_block_test"
 
 # Test: c_variable-3.5
 # Desc: create inner block foo
@@ -125,13 +89,7 @@ mi_gdb_test "-var-create inner_foo * foo
 	"create local variable inner_foo"
 
 # step to "foo2 = 0;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"166\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout { fail "step at do_block_tests (timeout)" }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "166" "step at do_block_test"
 
 # Test: c_variable-3.6
 # Desc: create foo2
@@ -163,13 +121,7 @@ mi_gdb_test "-var-delete inner_foo" \
 	"delete var inner_foo"
 
 # step to "foo = 0;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"168\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout { fail "step at do_block_tests (timeout)" }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "168" "step at do_block_test"
 
 # Test: c_variable-3.8
 # Desc: check that foo2 out of scope (known gdb problem)
@@ -180,14 +132,7 @@ mi_gdb_test "-var-update foo2" \
 clear_xfail *-*-*
 
 # step to "cb = 21;"
-send_gdb "-exec-step\n"
-gdb_expect {
-    -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"171\"\}\r\n$mi_gdb_prompt$" {
-	pass "step at do_block_tests"
-    }
-    timeout { fail "step at do_block_tests (timeout)" }
-}
-
+mi_step_to "do_block_tests" "" "var-cmd.c" "171" "step at do_block_test"
 
 # Test: c_variable-3.9
 # Desc: check that only cb is in scope (known gdb problem)
Index: mi1-var-cmd.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-var-cmd.exp,v
retrieving revision 1.3
diff -u -p -r1.3 mi1-var-cmd.exp
--- mi1-var-cmd.exp	23 Oct 2002 23:57:28 -0000	1.3
+++ mi1-var-cmd.exp	5 Nov 2002 02:35:14 -0000
@@ -70,19 +70,7 @@ mi_gdb_test "113-var-create argc * argc"
 	"&\"mi_cmd_var_create: unable to create variable object\\\\n\".*113\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
 	"create out of scope variable"
 
-mi_gdb_test "200-break-insert do_locals_tests" \
-	"200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_locals_tests\",file=\".*var-cmd.c\",line=\"106\",times=\"0\"\}" \
-	"break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
-    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_locals_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"106\"\}\r\n$mi_gdb_prompt$" {
-	pass "run to do_locals_tests"
-    }
-    -re ".*$mi_gdb_prompt$" {fail "run to do_locals_tests (2)"}
-    timeout {fail "run to do_locals_tests (timeout 2)"}
-}
+mi_runto do_locals_tests
 
 # Test: c_variable-1.4
 # Desc: create local variables
Index: mi1-watch.exp
===================================================================
RCS file: /cvs/uberbaum/gdb/testsuite/gdb.mi/mi1-watch.exp,v
retrieving revision 1.2
diff -u -p -r1.2 mi1-watch.exp
--- mi1-watch.exp	1 Oct 2002 16:01:37 -0000	1.2
+++ mi1-watch.exp	5 Nov 2002 02:35:14 -0000
@@ -115,31 +115,6 @@ proc test_rwatch_creation_and_listing {}
 	    "delete read watchpoint"
 }
 
-proc test_running_the_program {} {
-    global mi_gdb_prompt
-    global hex
-
-    # Run the program without args, then specify srgs and rerun the program
-    # Tests:
-    # -exec-run
-
-    mi_gdb_test "300-break-insert callee4" \
-             "300\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
-             "insert breakpoint at callee4"
-
-    # mi_gdb_test cannot be used for asynchronous commands because there are
-    # two prompts involved and this can lead to a race condition.
-    # The following is equivalent to a send_gdb "000-exec-run\n"
-    mi_run_cmd
-    # The running part has been checked already by mi_run_cmd
-        gdb_expect {
-	    -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" \
-		    { pass "run to callee4" }
-          -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
-          timeout {fail "run to callee4 (timeout 2)"}
-        }
-}
-
 proc test_watchpoint_triggering {} {
     global mi_gdb_prompt
     global hex
@@ -181,7 +156,7 @@ proc test_watchpoint_triggering {} {
     }
 }
 
-test_running_the_program
+mi_runto callee4
 test_watchpoint_creation_and_listing
 #test_rwatch_creation_and_listing
 #test_awatch_creation_and_listing



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