2011-05-30 Yao Qi <yao@codesourcery.com>
authorYao Qi <yao@codesourcery.com>
Mon, 30 May 2011 02:32:21 +0000 (02:32 +0000)
committerYao Qi <yao@codesourcery.com>
Mon, 30 May 2011 02:32:21 +0000 (02:32 +0000)
* gdb.base/callfuncs.exp (rerun_and_prepare): New.
Call rerun_and_prepare for each test to isolate effects.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/callfuncs.exp

index 66fea15..6aff7b8 100644 (file)
@@ -1,8 +1,13 @@
 2011-05-30  Yao Qi  <yao@codesourcery.com>
 
-        * gdb.base/varargs.c (find_max_float_real): New.
-        (find_max_double_real, find_max_long_double_real): New.
-        * gdb.base/varargs.exp: Call these new added functions.
+       * gdb.base/callfuncs.exp (rerun_and_prepare): New.
+       Call rerun_and_prepare for each test to isolate effects.
+
+2011-05-30  Yao Qi  <yao@codesourcery.com>
+
+       * gdb.base/varargs.c (find_max_float_real): New.
+       (find_max_double_real, find_max_long_double_real): New.
+       * gdb.base/varargs.exp: Call these new added functions.
        * lib/gdb.exp (setup_kfail_for_target): New.
 
 2011-05-30  Yao Qi  <yao@codesourcery.com>
index 27ebd1e..5294a2d 100644 (file)
@@ -273,6 +273,39 @@ proc fetch_all_registers {test} {
     return $all_registers_lines
 }
 
+proc rerun_and_prepare {} {
+    global hp_aCC_compiler
+
+    if { $hp_aCC_compiler } {
+       # Do not set language explicitly to 'C'.  This will cause aCC
+       # tests to fail because promotion rules are different.  Just let
+       # the language be set to the default.
+
+       if { ![runto_main] } {
+           gdb_suppress_tests;
+       }
+
+       # However, turn off overload-resolution for aCC.  Having it on causes
+       # a lot of failures.
+
+       gdb_test_no_output "set overload-resolution 0"
+    } else {
+       gdb_test_no_output "set language c"
+       if { ![runto_main] } {
+           gdb_suppress_tests;
+       }
+    }
+
+    get_debug_format
+
+    # Make sure that malloc gets called and that the floating point unit
+    # is initialized via a call to t_double_values.
+    gdb_test "next" "t_double_values\\(double_val1, double_val2\\);.*" \
+       "next to t_double_values"
+    gdb_test "next" "t_structs_c\\(struct_val1\\);.*" \
+       "next to t_structs_c"
+}
+
 
 # Start with a fresh gdb.
 
@@ -285,34 +318,7 @@ gdb_test_no_output "set print sevenbit-strings"
 gdb_test_no_output "set print address off"
 gdb_test_no_output "set width 0"
 
-if { $hp_aCC_compiler } {
-    # Do not set language explicitly to 'C'.  This will cause aCC
-    # tests to fail because promotion rules are different.  Just let
-    # the language be set to the default.
-
-    if { ![runto_main] } {
-       gdb_suppress_tests;
-    }
-
-    # However, turn off overload-resolution for aCC.  Having it on causes
-    # a lot of failures.
-
-    gdb_test_no_output "set overload-resolution 0"
-} else {
-    gdb_test_no_output "set language c"
-    if { ![runto_main] } {
-       gdb_suppress_tests;
-    }
-}
-
-get_debug_format
-
-# Make sure that malloc gets called and that the floating point unit
-# is initialized via a call to t_double_values.
-gdb_test "next" "t_double_values\\(double_val1, double_val2\\);.*" \
-  "next to t_double_values"
-gdb_test "next" "t_structs_c\\(struct_val1\\);.*" \
-  "next to t_structs_c"
+rerun_and_prepare
 
 # Save all register contents.
 set old_reg_content [fetch_all_registers "retrieve original register contents"]
@@ -330,6 +336,10 @@ if {$old_reg_content == $new_reg_content} then {
     fail "gdb function calls preserve register contents"
 }
 
+rerun_and_prepare
+# Save all register contents.
+set old_reg_content [fetch_all_registers "retrieve original register contents"]
+
 # Set breakpoint at a function we will call from gdb.
 gdb_breakpoint add
 
@@ -351,6 +361,12 @@ if ![gdb_test "bt 2" \
     }
 }
 
+rerun_and_prepare
+# Set breakpoint at a function we will call from gdb.
+gdb_breakpoint add
+# Save all register contents.
+set old_reg_content [fetch_all_registers "retrieve original register contents"]
+
 # Call function (causing a breakpoint hit in the call dummy) and do a finish,
 # make sure we are back at main and still have the same register contents.
 gdb_test "print add(4,5)" "The program being debugged stopped while.*" \
@@ -370,6 +386,12 @@ if ![gdb_test "bt 2" \
     }
 }
 
+rerun_and_prepare
+# Set breakpoint at a function we will call from gdb.
+gdb_breakpoint add
+# Save all register contents.
+set old_reg_content [fetch_all_registers "retrieve original register contents"]
+
 # Call function (causing a breakpoint hit in the call dummy) and do a return
 # with a value, make sure we are back at main with the same register contents.
 gdb_test "print add(4,5)" "The program being debugged stopped while.*" \
@@ -388,6 +410,11 @@ if ![gdb_test "return 7" \
     }
 }
 
+rerun_and_prepare
+# Set breakpoint at a function we will call from gdb.
+gdb_breakpoint add
+set old_reg_content [fetch_all_registers "retrieve original register contents"]
+
 # Call function (causing a breakpoint hit in the call dummy), and
 # call another function from the call dummy frame (thereby setting up
 # several nested call dummy frames).  Test that backtrace and finish