aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ.T. Conklin <jtc@acorntoolworks.com>1994-07-18 19:25:50 +0000
committerJ.T. Conklin <jtc@acorntoolworks.com>1994-07-18 19:25:50 +0000
commit8f2d75fcf4676436569174fb2f824a6d3f31efd1 (patch)
tree6ccb5555f7ca99fbf39377f6008a8d05614a64c6
parent005234f563cad2fffd0f70dce23875a5c50e0de3 (diff)
downloadgdb-8f2d75fcf4676436569174fb2f824a6d3f31efd1.zip
gdb-8f2d75fcf4676436569174fb2f824a6d3f31efd1.tar.gz
gdb-8f2d75fcf4676436569174fb2f824a6d3f31efd1.tar.bz2
* 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.
-rw-r--r--gdb/testsuite/ChangeLog11
-rw-r--r--gdb/testsuite/gdb.base/corefile.exp139
2 files changed, 150 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 4ac5df9..2a18cc8 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 0000000..2dc2d5a
--- /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."