aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2010-08-30 17:38:10 +0000
committerDaniel Jacobowitz <drow@false.org>2010-08-30 17:38:10 +0000
commit640617ad17a526e78796054d1da3d652ae5c8dc9 (patch)
tree07c3c7700563fb65d76326cecf2a34c31c6444e5
parent25b41d01eaa6f8f68491ef2eb65ca403907269f7 (diff)
downloadgdb-640617ad17a526e78796054d1da3d652ae5c8dc9.zip
gdb-640617ad17a526e78796054d1da3d652ae5c8dc9.tar.gz
gdb-640617ad17a526e78796054d1da3d652ae5c8dc9.tar.bz2
* 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.
-rw-r--r--gdb/testsuite/ChangeLog7
-rw-r--r--gdb/testsuite/gdb.cp/cpexprs.cc18
-rw-r--r--gdb/testsuite/gdb.cp/cpexprs.exp17
3 files changed, 34 insertions, 8 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index bcfb01e..00c599a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -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
diff --git a/gdb/testsuite/gdb.cp/cpexprs.cc b/gdb/testsuite/gdb.cp/cpexprs.cc
index 2bca4cd..ac79666 100644
--- a/gdb/testsuite/gdb.cp/cpexprs.cc
+++ b/gdb/testsuite/gdb.cp/cpexprs.cc
@@ -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;
+}
diff --git a/gdb/testsuite/gdb.cp/cpexprs.exp b/gdb/testsuite/gdb.cp/cpexprs.exp
index 2addc1e..818e5e0 100644
--- a/gdb/testsuite/gdb.cp/cpexprs.exp
+++ b/gdb/testsuite/gdb.cp/cpexprs.exp
@@ -24,9 +24,14 @@
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
}
}