+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
};
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) ();
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;
+}
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}]
array set all_functions {}
# "Normal" functions/methods
-add {main} \
+add {test_function} \
{int (int, char **)} \
- \
-
# 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
}
}