From Rob Savoye (rob@poseidon.cygnus.com)
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / commands.exp
index 59f126f0d5b46a88137c49b9b31e44de362f4460..c49ec6c547d8749cfc73ae3b77694fc6398d326b 100644 (file)
@@ -12,7 +12,7 @@
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 # Please email any bugs, comments, and/or additions to this file to:
 # bug-gdb@prep.ai.mit.edu
@@ -27,18 +27,19 @@ if $tracelevel then {
 set prms_id 0
 set bug_id 0
 
-set binfile "run"
-
-if ![file exists $objdir/$subdir/$binfile] then {
-    perror "$objdir/$subdir/$binfile does not exist."
-    return 0
+set testfile "run"
+set srcfile ${srcdir}/$subdir/${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+if  { [compile "${srcfile} -g -o ${binfile}"] != "" } {
+    perror "Couldn't compile ${srcfile}"
+    return -1
 }
 
 gdb_exit
 gdb_start
 delete_breakpoints
 gdb_reinitialize_dir $srcdir/$subdir
-gdb_load $objdir/$subdir/$binfile
+gdb_load ${binfile}
 
 proc gdbvar_simple_if_test {} {
     global prompt
@@ -68,6 +69,12 @@ proc gdbvar_complex_if_while_test {} {
 
 proc progvar_simple_if_test {} {
     global prompt
+    global noargs
+
+    if $noargs { 
+        verbose "Skipping progvar_simple_if_test because of noargs."
+        return
+    }
 
     gdb_test "set args 5" "" "set args in progvar_simple_if_test"
     if { ![runto factorial] } then { return }
@@ -79,6 +86,12 @@ proc progvar_simple_if_test {} {
 
 proc progvar_simple_while_test {} {
     global prompt
+    global noargs
+
+    if $noargs { 
+        verbose "Skipping progvar_simple_while_test because of noargs."
+        return
+    }
 
     gdb_test "set args 5" "" "set args in progvar_simple_while_test"
     if { ![runto factorial] } then { return }
@@ -88,6 +101,12 @@ proc progvar_simple_while_test {} {
 
 proc progvar_complex_if_while_test {} {
     global prompt
+    global noargs
+
+    if $noargs { 
+        verbose "Skipping progvar_simple_if_while_test because of noargs."
+        return
+    }
 
     gdb_test "set args 4" "" "set args in progvar_complex_if_while_test"
     if { ![runto factorial] } then { return }
@@ -96,6 +115,13 @@ proc progvar_complex_if_while_test {} {
 }
 
 proc if_while_breakpoint_command_test {} {
+    global noargs
+
+    if $noargs { 
+        verbose "Skipping if_while_breakpoint_command_test because of noargs."
+        return
+    }
+
     gdb_test "set args 5" "" "set args in if_while_breakpoint_command_test"
     if { ![runto factorial] } then { return }
     delete_breakpoints
@@ -118,6 +144,13 @@ proc if_while_breakpoint_command_test {} {
 
 # Test that we can run the inferior from breakpoint commands.
 proc infrun_breakpoint_command_test {} {
+    global noargs
+
+    if $noargs { 
+        verbose "Skipping infrun_breakpoint_command_test because of noargs."
+        return
+    }
+
     gdb_test "set args 6" "" "set args in progvar_simple_while_test"
     if { ![runto factorial] } then { return }
     delete_breakpoints
@@ -139,6 +172,25 @@ factorial \\(value=3\\) at .*
        "continue in infrun_breakpoint_command_test"
 }
 
+proc breakpoint_command_test {} {
+    global noargs
+
+    if $noargs { 
+        verbose "Skipping breakpoint_command_test because of noargs."
+        return
+    }
+
+    gdb_test "set args 6" "" "set args in progvar_simple_while_test"
+    if { ![runto factorial] } then { return }
+    delete_breakpoints
+    gdb_test "break factorial" "Breakpoint.*at.*"
+    gdb_test "commands\nprintf \"Now the value is %d\\n\", value\nend" \
+       "End with.*" "commands in breakpoint_command_test"
+    gdb_test "continue" "Breakpoint \[0-9\]*, factorial.*Now the value is 5" \
+       "continue in breakpoint_command_test"
+    gdb_test "print value" " = 5" "print value in breakpoint_command_test"
+}
+
 # Test a simple user defined command (with arguments)
 proc user_defined_command_test {} {
     global prompt
@@ -169,4 +221,5 @@ progvar_simple_while_test
 progvar_complex_if_while_test
 if_while_breakpoint_command_test
 infrun_breakpoint_command_test
+breakpoint_command_test
 user_defined_command_test
This page took 0.195608 seconds and 4 git commands to generate.