* gdb.cp/cpexprs.exp (test_breakpoint): Continue to test_function
authorDaniel Jacobowitz <drow@false.org>
Mon, 30 Aug 2010 17:38:10 +0000 (17:38 +0000)
committerDaniel Jacobowitz <drow@false.org>
Mon, 30 Aug 2010 17:38:10 +0000 (17:38 +0000)
instead of running to main.  Do not test the main function.
* gdb/testsuite/gdb.cp/cpexprs.cc (main): Rename to test_function.
Add new main.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.cp/cpexprs.cc
gdb/testsuite/gdb.cp/cpexprs.exp

index bcfb01ee1ced84d72ba0388ade52e7f008cf1591..00c599ac89275f85f82adadbe6b289c6143658a2 100644 (file)
@@ -1,3 +1,10 @@
+2010-08-30  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * gdb.cp/cpexprs.exp (test_breakpoint): Continue to test_function
+       instead of running to main.  Do not test the main function.
+       * gdb/testsuite/gdb.cp/cpexprs.cc (main): Rename to test_function.
+       Add new main.
+
 2010-08-26  Pedro Alves  <pedro@codesourcery.com>
 
        * gdb.mi/mi-nsmoribund.exp: Revert back to send_gdb/gdb_expect in
index 2bca4cd73acad047fa474b63aa126979ffe2c77c..ac7966603e043a053bb0acbb0cc5803e2fb6f829 100644 (file)
@@ -309,8 +309,8 @@ class derived : public base1, public base2
 };
 
 int
-main (int argc, char* argv[]) // main
-{ // main
+test_function (int argc, char* argv[]) // test_function
+{ // test_function
   derived d;
   void (derived::*pfunc) (void) const = &derived::a_function;
   (d.*pfunc) ();
@@ -427,5 +427,19 @@ main (int argc, char* argv[]) // main
   char* str = a;
   fluff* flp = a;
   fluff** flpp = a;
+
+  return 0;
 }
 
+int
+main (int argc, char* argv[])
+{
+  int i;
+
+  /* Call the test function repeatedly, enough times for all our tests
+     without running forever if something goes wrong.  */
+  for (i = 0; i < 1000; i++)
+    test_function (argc, argv);
+
+  return 0;
+}
index 2addc1e8c706518f790a31a6f721f92a17fe1b51..818e5e0de0ede51f1cfce3e94a56b63ab11306fd 100644 (file)
 proc test_breakpoint {func} {
     global DEC
 
-    # Restart every time
-    if {![runto_main]} {
-       perror "could not run to main when attempting to break at $func"
+    # Return to the top of the test function every time.
+    delete_breakpoints
+    if { ! [gdb_breakpoint test_function] } {
+       fail "set test_function breakpoint for $func"
+    } elseif { [gdb_test "continue" \
+                   "Continuing.\r\n\r\nBreakpoint $DEC+,.*test_function.*" \
+                   ""] != 0 } {
+       fail "continue to test_function for $func"
     } else {
        gdb_breakpoint "$func"
        set i [expr {[string last : $func] + 1}]
@@ -113,7 +118,7 @@ set ADDR "0x$HEX+"; # address
 array set all_functions {}
 
 # "Normal" functions/methods
-add {main} \
+add {test_function} \
     {int (int, char **)} \
     - \
     -
@@ -717,8 +722,8 @@ foreach name [get_functions list] {
 
 # Running to breakpoint -- use any function we can "list"
 foreach name [get_functions list] {
-    # Skip "main", since test_breakpoint uses it
-    if {[string compare $name "main"] != 0} {
+    # Skip "test_function", since test_breakpoint uses it
+    if {[string compare $name "test_function"] != 0} {
        test_breakpoint $name
     }
 }