From 06c87bef35fbcaa68d691535fcac9f1a8af6e3f4 Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Fri, 11 Aug 1995 16:42:45 +0000 Subject: [PATCH] * gdb.base/a1-selftest.exp: Change "i*86-*-sysv4" xfail for "backtrace through signal handler" to "i*86-*-sysv4*". * gdb.base/signals.exp: Add xfail for "'next' behaved as continue" case. Add "known SVR4 bug" to fail message. Add "i*86-*-bsdi2.0" xfail for "handle all print". Add "i*86-*-bsdi2.0" xfail for "backtrace in signals_tests_1". * gdb.base/ptype.exp: Add "i*86-*-sysv4*" xfail for "whatis unnamed typedef'd enum..." and "ptype t_char_array". * gdb.base/langs.exp: Add "i*86-*-sysv4*" xfail for "up to foo in langs.exp", "show language at foo in langs.exp", "up to cppsub_ in langs.exp", "show language at cppsub_ in langs.exp", "up to fsub in langs.exp", and "show language at fsub in langs.exp". * gdb.base/corefile.exp: Add "i*86-*-sysv4*" to xfail for "bactrace in corefile.exp". * gdb.base/callfuncs.exp: Change xfail to "i*86-*-*" for "call inferior function with struct - returns float" and "call inferior function with struct - returns double". --- gdb/testsuite/ChangeLog | 30 ++++++++++ gdb/testsuite/Makefile.in | 77 +++++++++++--------------- gdb/testsuite/gdb.base/a1-selftest.exp | 2 +- gdb/testsuite/gdb.base/callfuncs.exp | 6 +- gdb/testsuite/gdb.base/corefile.exp | 2 +- gdb/testsuite/gdb.base/langs.exp | 68 +++++++++++++++++++++++ gdb/testsuite/gdb.base/ptype.exp | 24 ++++---- gdb/testsuite/gdb.base/signals.exp | 18 +++++- 8 files changed, 162 insertions(+), 65 deletions(-) create mode 100644 gdb/testsuite/gdb.base/langs.exp diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index b5b9ce98f3..ca0cc82293 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,24 @@ +Wed Aug 9 08:04:12 1995 Fred Fish (fnf@cygnus.com) + + * gdb.base/a1-selftest.exp: Change "i*86-*-sysv4" xfail for + "backtrace through signal handler" to "i*86-*-sysv4*". + * gdb.base/signals.exp: Add xfail for "'next' behaved as + continue" case. Add "known SVR4 bug" to fail message. + Add "i*86-*-bsdi2.0" xfail for "handle all print". + Add "i*86-*-bsdi2.0" xfail for "backtrace in signals_tests_1". + * gdb.base/ptype.exp: Add "i*86-*-sysv4*" xfail for + "whatis unnamed typedef'd enum..." and "ptype t_char_array". + * gdb.base/langs.exp: Add "i*86-*-sysv4*" xfail for + "up to foo in langs.exp", "show language at foo in + langs.exp", "up to cppsub_ in langs.exp", "show + language at cppsub_ in langs.exp", "up to fsub in + langs.exp", and "show language at fsub in langs.exp". + * gdb.base/corefile.exp: Add "i*86-*-sysv4*" to xfail for + "bactrace in corefile.exp". + * gdb.base/callfuncs.exp: Change xfail to "i*86-*-*" for + "call inferior function with struct - returns float" and + "call inferior function with struct - returns double". + start-sanitize-sh3e Mon Aug 7 02:43:28 1995 Jeff Law (law@snake.cs.utah.edu) @@ -7,6 +28,15 @@ Mon Aug 7 02:43:28 1995 Jeff Law (law@snake.cs.utah.edu) * gdb.disasm/sh3.mt: Makefile fragment for sh3 ests. end-sanitize-sh3e +Mon Aug 7 08:09:37 1995 Fred Fish + + * Makefile.in (CHILL_FOR_TARGET): Use previously defined + (or overriden) "CHILL" macro rather then bare "gcc". + Also look for ../../gcc/xgcc since that is what we will + actually need, not "Makefile". Remove following assignment + of CHILL to CHILL_FOR_TARGET because that results in + recursive definition. + Sun Aug 6 16:52:29 1995 Fred Fish * gdb.base/corefile.exp: Change xfail for backtrace in diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in index 0647860df6..5d774fd2a0 100644 --- a/gdb/testsuite/Makefile.in +++ b/gdb/testsuite/Makefile.in @@ -1,5 +1,5 @@ # Makefile for regression testing the GNU debugger. -# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. # This file is part of GDB. @@ -14,8 +14,8 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program; see the file COPYING. If not, write to -# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. srcdir = . prefix = /usr/local @@ -49,10 +49,12 @@ INSTALL = install -c INSTALL_PROGRAM = $(INSTALL) INSTALL_DATA = $(INSTALL) -CFLAGS = -g -# start-sanitize-chill -CHILLFLAGS = $(CFLAGS) -# end-sanitize-chill +# Do not use CFLAGS, that is set in the top-level config/mh-hp300 to not +# contain -g. In general, the flags to be used for building the tools and +# the flags to be used to build the testsuite probably don't have much to +# do with each other. +TESTSUITE_CFLAGS = -g +CHILLFLAGS = $(TESTSUITE_CFLAGS) # This should probably be consistent with the top-level Makefile.in, # gdb/Makefile.in, and gdb/testsuite/gdb.t2*/Makefile.in, so that "make check" # has the same effect no matter where it is run. @@ -111,20 +113,18 @@ CXX_FOR_TARGET = ` \ fi; \ fi` -# start-sanitize-chill -CHILLFLAGS = $(CFLAGS) +CHILLFLAGS = $(TESTSUITE_CFLAGS) CHILL = gcc CHILL_FOR_TARGET = ` \ - if [ -f $${rootme}/../../gcc/Makefile ] ; then \ + if [ -f $${rootme}/../../gcc/xgcc ] ; then \ echo $${rootme}/../../gcc/xgcc -B$${rootme}../../gcc/; \ else \ if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \ - echo gcc; \ + echo $(CHILL); \ else \ t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \ fi; \ fi` -CHILL = $(CHILL_FOR_TARGET) CHILL_LIB = ` \ if [ -f $${rootme}/../../gcc/ch/runtime/libchill.a ] ; then \ @@ -133,20 +133,6 @@ CHILL_LIB = ` \ else \ echo -lchill; \ fi` -# end-sanitize-chill - -GDB = ` \ - if [ -f $${rootme}/../gdb ] ; then \ - echo $${rootme}/../gdb ; \ - else \ - if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \ - echo gdb; \ - else \ - t='$(program_transform_name)'; echo gdb | sed -e '' $$t; \ - fi; \ - fi` - -GDBFLAGS = -nx #### host, target, and site specific Makefile frags come in here. @@ -159,13 +145,11 @@ TARGET_FLAGS_TO_PASS = \ "against=$(against)" \ 'CC=$$(CC_FOR_TARGET)' \ "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ - "CFLAGS=$(CFLAGS)" \ - $(start-sanitize-chill) \ + "CFLAGS=$(TESTSUITE_CFLAGS)" \ "CHILLFLAGS=$(CHILLFLAGS)" \ 'CHILL=$$(CHILL_FOR_TARGET)' \ "CHILL_FOR_TARGET=$(CHILL_FOR_TARGET)" \ "CHILL_LIB=$(CHILL_LIB)" \ - $(end-sanitize-chill) \ 'CXX=$$(CXX_FOR_TARGET)' \ "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ "CXXFLAGS=$(CXXFLAGS)" \ @@ -199,7 +183,6 @@ site.exp: ./config.status Makefile @echo "## these variables are automatically generated by make ##" > ./tmp0 @echo "# Do not edit here. If you wish to override these values" >> ./tmp0 @echo "# add them to the last section" >> ./tmp0 - @echo "set GDBFLAGS \"${GDBFLAGS}\"" >> ./tmp0 @echo "set host_alias $(host_alias)" >> ./tmp0 @echo "set host_triplet ${host_canonical}" >> ./tmp0 @echo "set target_alias $(target_alias)" >> ./tmp0 @@ -223,7 +206,7 @@ just-check: if [ -f $${rootme}/../../expect/expect ] ; then \ TCL_LIBRARY=$${srcdir}/../../tcl/library ; \ export TCL_LIBRARY ; fi ; \ - $(RUNTEST) $(RUNTESTFLAGS) GDB=$(GDB) + $(RUNTEST) $(RUNTESTFLAGS) subdir_do: force @for i in $(DODIRS); do \ @@ -252,25 +235,29 @@ subdirs: clean mostlyclean: -rm -f *~ core *.o a.out xgdb *.x - for dir in ${SUBDIRS}; \ - do \ - echo "$$dir:"; \ - if [ -d $$dir ]; then \ - (cd $$dir; $(MAKE) clean); \ - fi; \ - done + if [ x"${SUBDIRS}" != x ] ; then \ + for dir in ${SUBDIRS}; \ + do \ + echo "$$dir:"; \ + if [ -d $$dir ]; then \ + (cd $$dir; $(MAKE) clean); \ + fi; \ + done ; \ + else true; fi distclean realclean: clean -rm -f *~ core *.log *.plog *.sum *.psum site.* -rm -f Makefile config.status *-init.exp -rm -fr *.log summary detail *.plog *.sum *.psum site.* - for dir in ${SUBDIRS}; \ - do \ - echo "$$dir:"; \ - if [ -d $$dir ]; then \ - (cd $$dir; $(MAKE) distclean); \ - fi; \ - done + if [ x"${SUBDIRS}" != x ] ; then \ + for dir in ${SUBDIRS}; \ + do \ + echo "$$dir:"; \ + if [ -d $$dir ]; then \ + (cd $$dir; $(MAKE) distclean); \ + fi; \ + done ; \ + else true; fi Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in $(host_makefile_frag) $(target_makefile_frag) $(SHELL) ./config.status diff --git a/gdb/testsuite/gdb.base/a1-selftest.exp b/gdb/testsuite/gdb.base/a1-selftest.exp index a05e89301b..4d07e7de4b 100644 --- a/gdb/testsuite/gdb.base/a1-selftest.exp +++ b/gdb/testsuite/gdb.base/a1-selftest.exp @@ -446,7 +446,7 @@ GDB.*Copyright \[0-9\]+ Free Software Foundation, Inc..*$prompt $"\ } # get a stack trace - setup_xfail "i*86-*-sysv4" "i*86-*-linux*" + setup_xfail "i*86-*-linux*" "i*86-*-sysv4*" set description "backtrace through signal handler" send "backtrace\n" expect { diff --git a/gdb/testsuite/gdb.base/callfuncs.exp b/gdb/testsuite/gdb.base/callfuncs.exp index a58149ac2a..5eee5e1bdd 100644 --- a/gdb/testsuite/gdb.base/callfuncs.exp +++ b/gdb/testsuite/gdb.base/callfuncs.exp @@ -12,7 +12,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # Please email any bugs, comments, and/or additions to this file to: # bug-gdb@prep.ai.mit.edu @@ -179,10 +179,10 @@ proc do_function_calls {} { "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-*-linux*" + 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-*-linux*" + 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)" "= \"foo\"" \ diff --git a/gdb/testsuite/gdb.base/corefile.exp b/gdb/testsuite/gdb.base/corefile.exp index 66e3edde2d..6f0810c5c0 100644 --- a/gdb/testsuite/gdb.base/corefile.exp +++ b/gdb/testsuite/gdb.base/corefile.exp @@ -142,7 +142,7 @@ $prompt $" { pass "core-file command" } # file correctly. I don't think the other tests do this. # Haven't investigated this xfail -setup_xfail "m68k-*-hpux*" "i*86-*-linux*" +setup_xfail "m68k-*-hpux*" "i*86-*-linux*" "i*86-*-sysv4*" gdb_test "bt" "abort.*func2.*func1.*main.*" "backtrace in corefile.exp" # test reinit_frame_cache diff --git a/gdb/testsuite/gdb.base/langs.exp b/gdb/testsuite/gdb.base/langs.exp new file mode 100644 index 0000000000..94e073b87c --- /dev/null +++ b/gdb/testsuite/gdb.base/langs.exp @@ -0,0 +1,68 @@ +if $tracelevel then { + strace $tracelevel +} + +set prms_id 0 +set bug_id 0 + +set binfile $objdir/$subdir/langs + +if ![file exists $binfile] then { + perror "$binfile does not exist." + return 0 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile + +gdb_test "b langs0" {Function "langs0" not defined\.} \ + "break on nonexistent function in langs.exp" + +if [runto csub] then { + gdb_test "show language" "currently c\".*" \ + "show language at csub in langs.exp" + # On some machines, foo doesn't get demangled because the N_SOL for + # langs2.cxx is seen only after the function stab for foo. So + # the following regexps are kludged to accept foo__Fi as well as foo, + # even though only the latter is correct. I haven't tried to xfail it + # because it depends on details of the compiler. + gdb_test "bt" "#0.*csub.*#1.*(foo|foo__Fi) \\(.*#2.*cppsub_ .*#3.*fsub.*#4.*langs0__2do \\(.*#5 \[0-9a-fx\]* in main.*" "backtrace in langs.exp" + + setup_xfail "i*86-*-sysv4*" + gdb_test "up" ".* in (foo|foo__Fi) .* at langs2\\.cxx.*return csub \\(.*" \ + "up to foo in langs.exp" + setup_xfail "i*86-*-sysv4*" + gdb_test "show language" "currently c\\+\\+.*" \ + "show language at foo in langs.exp" + + setup_xfail "i*86-*-sysv4*" + gdb_test "up" ".* in cppsub_ .* at langs2\\.cxx.*return foo \\(.*" \ + "up to cppsub_ in langs.exp" + setup_xfail "i*86-*-sysv4*" + gdb_test "show language" "currently c\\+\\+.*" \ + "show language at cppsub_ in langs.exp" + + setup_xfail "i*86-*-sysv4*" + gdb_test "up" ".* in fsub.* at langs1\\.f.*return \\(cppsub .*" \ + "up to fsub in langs.exp" + setup_xfail "i*86-*-sysv4*" + gdb_test "show language" "currently fortran.*" \ + "show language at fsub in langs.exp" + + gdb_test "up" ".* in langs0__2do .* at .*langs0\\.c.*return fsub.*" \ + "up to langs0__2do in langs.exp" + gdb_test "show language" "currently c\".*" \ + "show language at langs0__2do in langs.exp" + + gdb_test "up" ".* in main .* at .*langs0\\.c.*if \\(langs0__2do \\(.*" \ + "up to main in langs.exp" + gdb_test "show language" "currently c\".*" \ + "show language at main in langs.exp" + + gdb_test "cont" "Program exited normally\\." \ + "continue to exit in langs.exp" +} + +return 0 diff --git a/gdb/testsuite/gdb.base/ptype.exp b/gdb/testsuite/gdb.base/ptype.exp index e69a8d13bb..60df8bb06f 100644 --- a/gdb/testsuite/gdb.base/ptype.exp +++ b/gdb/testsuite/gdb.base/ptype.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1988, 1990, 1991, 1992 Free Software Foundation, Inc. +# Copyright (C) 1988, 1990, 1991, 1992, 1994 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -12,7 +12,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # Please email any bugs, comments, and/or additions to this file to: # bug-gdb@prep.ai.mit.edu @@ -198,6 +198,7 @@ expect { # GDB's behavior is correct; the type which the variable is defined # as (51) doesn't have a name. Only 55 has a name. +setup_xfail "i*86-*-sysv4*" gdb_test "whatis v_boolean" "type = boolean" \ "whatis unnamed typedef'd enum (compiler bug in IBM's xlc)" @@ -470,6 +471,10 @@ expect { # timeout { fail "(timeout) ptype double array" } #} # + +setup_xfail "i*86-*-sysv4*" +gdb_test "ptype t_char_array" "type = (|unsigned )char \\\[0?\\\]" + # ## ## test ptype command with pointers @@ -589,7 +594,6 @@ expect { # timeout { fail "(timeout) ptype double pointer" } #} - # # test ptype command with nested structure and union # @@ -686,10 +690,9 @@ expect { # the operation causes a slow painful death rather than a nice simple failure. if ![istarget "*-*-udi*"] then { - if [runto main] then { - set timeout 120 + if [runto_main] then { setup_xfail "a29k-*-udi" 2416 - gdb_test "ptype \\\"abc\\\"" "type = char \\\[4\\\]" + gdb_test "ptype \"abc\"" "type = char \\\[4\\\]" setup_xfail "a29k-*-udi" 2416 gdb_test "ptype {'a','b','c'}" "type = char \\\[3\\\]" setup_xfail "a29k-*-udi" 2416 @@ -701,13 +704,8 @@ if ![istarget "*-*-udi*"] then { setup_xfail "a29k-*-udi" 2416 gdb_test "ptype {{0,1,2},{3,4,5}}" "type = int \\\[2\\\]\\\[3\\\]" setup_xfail "a29k-*-udi" 2416 - gdb_test "ptype {4,5,6}\\\[2\\\]" "type = int" + gdb_test "ptype {4,5,6}\[2\]" "type = int" setup_xfail "a29k-*-udi" 2416 - gdb_test "ptype *&{4,5,6}\\\[1\\\]" "type = int" - set timeout 10 - if [istarget "a29k-*-udi"] then { - # FIXME: If PR 2415 is fixed, this is not needed. - gdb_target_udi - } + gdb_test "ptype *&{4,5,6}\[1\]" "type = int" } } diff --git a/gdb/testsuite/gdb.base/signals.exp b/gdb/testsuite/gdb.base/signals.exp index 85ce15e9f4..6e3bd97bf4 100644 --- a/gdb/testsuite/gdb.base/signals.exp +++ b/gdb/testsuite/gdb.base/signals.exp @@ -92,7 +92,20 @@ proc signal_tests_1 {} { # Solaris is not a relevant data point either way # because it lacks single stepping. - fail "'next' behaved as 'continue'" + # fnf: I don't agree with the above philosophy. We + # can never be sure that any particular XFAIL is + # specified 100% correctly in that no systems with + # the bug are missed and all systems without the bug + # are excluded. If we include an XFAIL that isn't + # appropriate for a particular system, then when that + # system gets tested it will XPASS, and someone should + # investigate and fix the setup_xfail as appropriate, + # or more preferably, the actual bug. Each such case + # adds more data to narrowing down the scope of the + # problem and ultimately fixing it. + + setup_xfail "i*86-*-sysv4*" + fail "'next' behaved as 'continue (known SVR4 bug)'" return 0 } -re ".*$prompt $" { fail "next to 2nd alarm (1)" } @@ -128,7 +141,7 @@ proc signal_tests_1 {} { # This doesn't test that main is frame #2, just that main is frame # #2, #3, or higher. At some point this should be fixed (but # it quite possibly would introduce new FAILs on some systems). - setup_xfail "i*86-*-linux" + setup_xfail "i*86-*-linux" "i*86-*-bsdi2.0" gdb_test "backtrace" "#0.*handler.*#1.*#2.*main.*" \ "backtrace in signals_tests_1" @@ -276,6 +289,7 @@ gdb_start # This will need to be updated as the exact list of signals changes, # but I want to test that TARGET_SIGNAL_0, TARGET_SIGNAL_DEFAULT, and # TARGET_SIGNAL_UNKNOWN are skipped. +setup_xfail "i*86-unknown-bsdi2.0" gdb_test "handle all print" "Signal Stop Print Pass to program Description\r\nSIGHUP Yes Yes Yes Hangup.*SIG63 Yes Yes Yes Real-time event 63" gdb_exit