From fc75bd970a7538c5cdbe8c8d7405e5daff999faf Mon Sep 17 00:00:00 2001 From: Bob Manson Date: Sat, 13 Sep 1997 00:08:05 +0000 Subject: * lib/gdb.exp(gdb_step_for_stub): New function. (gdb_run_cmd): Look for gdb,do_reload_on_run target feature--if it exists, reload the executable and do a "continue" instead of doing a jump. (runto_main): Use gdb_step_for_stub. * gdb.base/break.exp: Use gdb_step_for_stub. Also, rename certain tests to have unique names. * gdb.base/callfuncs.exp: Ditto. * gdb.base/commands.exp: Ditto. * gdb.base/default.exp: Ditto. * gdb.base/help.exp: Ditto. * gdb.base/list.exp: Ditto. * gdb.base/opaque.exp: Ditto. * gdb.base/printcmds.exp: Ditto. Use a loop to emit multiple similar tests. * gdb.base/setshow.c: Add set_debug_traps/breakpoint calls. * gdb.c++/cplusfuncs.cc: Ditto. * gdb.c++/virtfunc.cc: Ditto. * config/monitor.exp: Keep track of the last file we saw, rather than trying to get the info from gdb. * gdb.fortran/types.exp: Move comment to previous line. Fixes for TCL8 miscellaneous problems, plus other changes. --- gdb/testsuite/gdb.base/callfuncs.exp | 121 ++++++++++++++++++++--------------- 1 file changed, 68 insertions(+), 53 deletions(-) (limited to 'gdb/testsuite/gdb.base') diff --git a/gdb/testsuite/gdb.base/callfuncs.exp b/gdb/testsuite/gdb.base/callfuncs.exp index ec5ea62..ffca30b 100644 --- a/gdb/testsuite/gdb.base/callfuncs.exp +++ b/gdb/testsuite/gdb.base/callfuncs.exp @@ -37,8 +37,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb # built the second test case since we can't use prototypes warning "Prototypes not supported, rebuilding with -DNO_PROTOTYPES" if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DNO_PROTOTYPES}] != "" } { - perror "Couldn't compile ${testfile}.c" - return -1 + gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } } @@ -65,7 +64,7 @@ proc set_lang_c {} { send_gdb "set language c\n" gdb_expect { -re ".*$gdb_prompt $" {} - timeout { fail "set language c (timeout)" ; return 0 } + timeout { fail "set language c (timeout)" ; return 0; } } send_gdb "show language\n" @@ -122,31 +121,43 @@ proc do_function_calls {} { gdb_test "p t_long_values(789,long_val2)" " = 1" gdb_test "p t_long_values(long_val1,-321)" " = 1" - gdb_test "p t_float_values(0.0,0.0)" " = 0" - gdb_test "p t_float_values(3.14159,-2.3765)" " = 1" - gdb_test "p t_float_values(float_val1,float_val2)" " = 1" - gdb_test "p t_float_values(3.14159,float_val2)" " = 1" - gdb_test "p t_float_values(float_val1,-2.3765)" " = 1" - - # Test passing of arguments which might not be widened. - gdb_test "p t_float_values2(0.0,0.0)" " = 0" - - # Although PR 5318 mentions SunOS specifically, this seems - # to be a generic problem on quite a few platforms. - if $prototypes then { - setup_xfail "hppa*-*-*" "sparc-*-*" "mips*-*-*" 5318 - if {!$gcc_compiled} then { - setup_xfail "alpha-dec-osf2*" "i*86-*-sysv4*" 5318 + if ![target_info exists gdb,skip_float_tests] { + gdb_test "p t_float_values(0.0,0.0)" " = 0" + + # These next four tests fail on the mn10300. + # The first value is passed in regs, the other in memory. + # Gcc emits different stabs for the two parameters; the first is + # claimed to be a float, the second a double. + # dbxout.c in gcc claims this is the desired behavior. + setup_xfail "mn10300-*-*" + gdb_test "p t_float_values(3.14159,-2.3765)" " = 1" + setup_xfail "mn10300-*-*" + gdb_test "p t_float_values(float_val1,float_val2)" " = 1" + setup_xfail "mn10300-*-*" + gdb_test "p t_float_values(3.14159,float_val2)" " = 1" + setup_xfail "mn10300-*-*" + gdb_test "p t_float_values(float_val1,-2.3765)" " = 1" + + # Test passing of arguments which might not be widened. + gdb_test "p t_float_values2(0.0,0.0)" " = 0" + + # Although PR 5318 mentions SunOS specifically, this seems + # to be a generic problem on quite a few platforms. + if $prototypes then { + setup_xfail "hppa*-*-*" "sparc-*-*" "mips*-*-*" 5318 + if {!$gcc_compiled} then { + setup_xfail "alpha-dec-osf2*" "i*86-*-sysv4*" 5318 + } } + gdb_test "p t_float_values2(3.14159,float_val2)" " = 1" + gdb_test "p t_small_values(1,2,3,4,5,6,7,8,9,10)" " = 55" + + gdb_test "p t_double_values(0.0,0.0)" " = 0" + gdb_test "p t_double_values(45.654,-67.66)" " = 1" + gdb_test "p t_double_values(double_val1,double_val2)" " = 1" + gdb_test "p t_double_values(45.654,double_val2)" " = 1" + gdb_test "p t_double_values(double_val1,-67.66)" " = 1" } - gdb_test "p t_float_values2(3.14159,float_val2)" " = 1" - gdb_test "p t_small_values(1,2,3,4,5,6,7,8,9,10)" " = 55" - - gdb_test "p t_double_values(0.0,0.0)" " = 0" - gdb_test "p t_double_values(45.654,-67.66)" " = 1" - gdb_test "p t_double_values(double_val1,double_val2)" " = 1" - gdb_test "p t_double_values(45.654,double_val2)" " = 1" - gdb_test "p t_double_values(double_val1,-67.66)" " = 1" gdb_test "p t_string_values(string_val2,string_val1)" " = 0" gdb_test "p t_string_values(string_val1,string_val2)" " = 1" @@ -198,25 +209,28 @@ proc do_function_calls {} { gdb_test "p sum_args(2,{2,3})" " = 5" gdb_test "p sum_args(3,{2,3,4})" " = 9" gdb_test "p sum_args(4,{2,3,4,5})" " = 14" - gdb_test "p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)" " = 55" - - gdb_test "p t_structs_c(struct_val1)" "= 120 'x'" \ - "call inferior func with struct - returns char" - gdb_test "p t_structs_s(struct_val1)" "= 87" \ - "call inferior func with struct - returns short" - gdb_test "p t_structs_i(struct_val1)" "= 76" \ - "call inferior func with struct - returns int" - gdb_test "p t_structs_l(struct_val1)" "= 51" \ - "call inferior func with struct - returns long" - setup_xfail "i*86-*-*" - gdb_test "p t_structs_f(struct_val1)" "= 2.12.*" \ - "call inferior func with struct - returns float" - setup_xfail "i*86-*-*" - gdb_test "p t_structs_d(struct_val1)" "= 9.87.*" \ - "call inferior func with struct - returns double" - gdb_test "p t_structs_a(struct_val1)" "= (.unsigned char .. )?\"foo\"" \ - "call inferior func with struct - returns char *" - + # These tests are broken, so we'll skip them. + + if ![istarget "tic80-*-*"] { + gdb_test "p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)" " = 55" + + gdb_test "p t_structs_c(struct_val1)" "= 120 'x'" \ + "call inferior func with struct - returns char" + gdb_test "p t_structs_s(struct_val1)" "= 87" \ + "call inferior func with struct - returns short" + gdb_test "p t_structs_i(struct_val1)" "= 76" \ + "call inferior func with struct - returns int" + gdb_test "p t_structs_l(struct_val1)" "= 51" \ + "call inferior func with struct - returns long" + setup_xfail "i*86-*-*" + gdb_test "p t_structs_f(struct_val1)" "= 2.12.*" \ + "call inferior func with struct - returns float" + setup_xfail "i*86-*-*" + gdb_test "p t_structs_d(struct_val1)" "= 9.87.*" \ + "call inferior func with struct - returns double" + gdb_test "p t_structs_a(struct_val1)" "= (.unsigned char .. )?\"foo\"" \ + "call inferior func with struct - returns char *" + } } # Start with a fresh gdb. @@ -230,14 +244,15 @@ gdb_test "set print sevenbit-strings" "" gdb_test "set print address off" "" gdb_test "set width 0" "" -if [set_lang_c] then { - if [runto_main] then { - gdb_test "next" ".*" - do_function_calls - } else { - fail "C function calling tests suppressed" - } +if { ![set_lang_c] } { + gdb_suppress_tests; } else { - fail "C function calling tests suppressed" + if { ![runto_main] } { + gdb_suppress_tests; + } } + +gdb_test "next" ".*" +do_function_calls + return 0 -- cgit v1.1