From 8f2d75fcf4676436569174fb2f824a6d3f31efd1 Mon Sep 17 00:00:00 2001 From: "J.T. Conklin" Date: Mon, 18 Jul 1994 19:25:50 +0000 Subject: [PATCH] * gdb.base/corefile.exp: Execute coremaker to generate core dump. * gdb.base/Makefile.in: Don't try to generate a core dump, we might testing a cross development system. --- gdb/testsuite/ChangeLog | 11 +++ gdb/testsuite/gdb.base/corefile.exp | 139 ++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 gdb/testsuite/gdb.base/corefile.exp diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 4ac5df9f902..2a18cc83e8b 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,14 @@ +Mon Jul 18 12:18:07 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * gdb.base/corefile.exp: Execute coremaker to generate core dump. + * gdb.base/Makefile.in: Don't try to generate a core dump, we + might testing a cross development system. + +Thu Jul 14 18:13:56 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * Makefile.in (RUNTEST_FOR_TARGET): Fix relative pathname, the + runtest script is relative to ${srcdir}, not ${rootdir}. + Thu Jul 14 14:56:59 1994 Stan Shebs (shebs@andros.cygnus.com) * gdb.base/signals.exp: Allow for optionality of breakpoint diff --git a/gdb/testsuite/gdb.base/corefile.exp b/gdb/testsuite/gdb.base/corefile.exp new file mode 100644 index 00000000000..2dc2d5aca6e --- /dev/null +++ b/gdb/testsuite/gdb.base/corefile.exp @@ -0,0 +1,139 @@ +# Copyright (C) 1992, 1993, 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# 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. */ + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +# This file was written by Fred Fish. (fnf@cygnus.com) + +if $tracelevel then { + strace $tracelevel +} + +set prms_id 0 +set bug_id 0 + +# are we on a target board +if ![isnative] then { + warning "corefile test case can't run on a target system" + return +} + + +set binfile "coremaker" +set srcfile $binfile.c + +if ![file exists $objdir/$subdir/$binfile] then { + perror "$objdir/$subdir/$binfile does not exist." + return 0 +} + +if ![file exists $objdir/$subdir/corefile] then { + # Create a core file named "corefile" rather than just "core", to + # avoid problems with sys admin types that like to regularly prune all + # files named "core" from the system. + # + # Some systems append "core" to the name of the program; others append + # the name of the program to "core". + + catch "system \"cd $objdir/$subdir; ./$binfile\"" + if [file exists $objdir/$subdir/core] then { + catch "exec mv $objdir/$subdir/core $objdir/$subdir/corefile" + } else if [file exists $objdir/$subdir/core.$binfile] { + catch "exec mv $objdir/$subdir/core.$binfile $objdir/$subdir/corefile" + } else if [file exists $objdir/$subdir/$binfile.core] { + catch "exec mv $objdir/$subdir/$binfile.core $objdir/$subdir/corefile" + } +} + +# +# Test that we can simply startup with a "-core=corefile" command line arg +# and recognize that the core file is a valid, usable core file. +# To do this, we must shutdown the currently running gdb and restart +# with the -core args. We can't use gdb_start because it looks for +# the first gdb prompt, and the message we are looking for occurs +# before the first prompt. Also, we can't include GDBFLAGS because +# if it is empty, this confuses gdb with an empty argument that it +# grumbles about (said grumbling currently being ignored in gdb_start). +# **FIXME** +# + +gdb_exit +if $verbose>1 then { + send_user "Spawning $GDB $GDBFLAGS -core=$objdir/$subdir/corefile\n" +} + +# The RS/6000 gdb doesn't know how to extract the file name and +# terminating signal from the core file, so all these tests are +# expected to fail. + +setup_xfail "rs6000-*-*" +set oldtimeout $timeout +set timeout [expr "$timeout + 60"] +spawn $GDB $GDBFLAGS -core=$objdir/$subdir/corefile +expect { + -re "Core was generated by .*coremaker.*\r +\#0 .*\(\).*\r +$prompt $" { pass "args: -core=corefile" } + -re ".*$prompt $" { fail "args: -core=corefile" } + timeout { fail "(timeout) starting with -core" } +} + + +# +# Test that startup with both an executable file and -core argument. +# See previous comments above, they are still applicable. +# + +gdb_exit +if $verbose>1 then { + send_user "Spawning $GDB $GDBFLAGS $objdir/$subdir/$binfile -core=$objdir/$subdir/corefile\n" +} + + +setup_xfail "rs6000-*-*" +# This fails in p3, but not in devo. +spawn $GDB $GDBFLAGS $objdir/$subdir/$binfile -core=$objdir/$subdir/corefile +expect { + -re "Core was generated by .*coremaker.*\r +\#0 .*\(\).*\r +$prompt $" { pass "args: execfile -core=corefile" } + -re ".*$prompt $" { fail "args: execfile -core=corefile" } + timeout { fail "(timeout) starting with -core" } +} +set timeout $oldtimeout + + +# Now restart normally. + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $objdir/$subdir/$binfile + +# Test basic corefile recognition via core-file command. + +setup_xfail "rs6000-*-*" +send "core-file $objdir/$subdir/corefile\n" +expect { + -re "Core was generated by .*coremaker.*\r +\#0 .*\(\).*\r +$prompt $" { pass "core-file command" } + -re ".*$prompt $" { fail "core-file command" } + timeout { fail "(timeout) core-file command" } +} + +gdb_test "core" "No core file now." -- 2.30.2