2011-05-30 Yao Qi <yao@codesourcery.com>
* gdb.base/callfuncs.exp (rerun_and_prepare): New. Call rerun_and_prepare for each test to isolate effects.
This commit is contained in:
parent
6680506ef0
commit
ff4d2c6018
|
@ -1,8 +1,13 @@
|
||||||
2011-05-30 Yao Qi <yao@codesourcery.com>
|
2011-05-30 Yao Qi <yao@codesourcery.com>
|
||||||
|
|
||||||
* gdb.base/varargs.c (find_max_float_real): New.
|
* gdb.base/callfuncs.exp (rerun_and_prepare): New.
|
||||||
(find_max_double_real, find_max_long_double_real): New.
|
Call rerun_and_prepare for each test to isolate effects.
|
||||||
* gdb.base/varargs.exp: Call these new added functions.
|
|
||||||
|
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.
|
* lib/gdb.exp (setup_kfail_for_target): New.
|
||||||
|
|
||||||
2011-05-30 Yao Qi <yao@codesourcery.com>
|
2011-05-30 Yao Qi <yao@codesourcery.com>
|
||||||
|
|
|
@ -273,6 +273,39 @@ proc fetch_all_registers {test} {
|
||||||
return $all_registers_lines
|
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.
|
# 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 print address off"
|
||||||
gdb_test_no_output "set width 0"
|
gdb_test_no_output "set width 0"
|
||||||
|
|
||||||
if { $hp_aCC_compiler } {
|
rerun_and_prepare
|
||||||
# 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"
|
|
||||||
|
|
||||||
# Save all register contents.
|
# Save all register contents.
|
||||||
set old_reg_content [fetch_all_registers "retrieve original 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"
|
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.
|
# Set breakpoint at a function we will call from gdb.
|
||||||
gdb_breakpoint add
|
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,
|
# 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.
|
# 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.*" \
|
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
|
# 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.
|
# 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.*" \
|
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 function (causing a breakpoint hit in the call dummy), and
|
||||||
# call another function from the call dummy frame (thereby setting up
|
# call another function from the call dummy frame (thereby setting up
|
||||||
# several nested call dummy frames). Test that backtrace and finish
|
# several nested call dummy frames). Test that backtrace and finish
|
||||||
|
|
Loading…
Reference in New Issue