aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base
diff options
context:
space:
mode:
authorBob Manson <manson@cygnus>1997-09-13 00:08:05 +0000
committerBob Manson <manson@cygnus>1997-09-13 00:08:05 +0000
commitfc75bd970a7538c5cdbe8c8d7405e5daff999faf (patch)
tree46f246975130e4586972f66b2801806a266814e4 /gdb/testsuite/gdb.base
parenteb16c04c8c232558f68b424bcb62b285fd2d9002 (diff)
downloadgdb-fc75bd970a7538c5cdbe8c8d7405e5daff999faf.zip
gdb-fc75bd970a7538c5cdbe8c8d7405e5daff999faf.tar.gz
gdb-fc75bd970a7538c5cdbe8c8d7405e5daff999faf.tar.bz2
* 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.
Diffstat (limited to 'gdb/testsuite/gdb.base')
-rw-r--r--gdb/testsuite/gdb.base/callfuncs.exp121
1 files changed, 68 insertions, 53 deletions
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