* config/sim-gdb: New file, simulator testing support.
authorStan Shebs <shebs@codesourcery.com>
Tue, 3 Jan 1995 01:44:08 +0000 (01:44 +0000)
committerStan Shebs <shebs@codesourcery.com>
Tue, 3 Jan 1995 01:44:08 +0000 (01:44 +0000)
gdb/testsuite/ChangeLog
gdb/testsuite/config/sim-gdb.exp [new file with mode: 0644]

index 8c65a9f455ef0071292d6dc74e927cf7a4d24390..83e34d96f9275f67ca47ebc357460ae9a5f29e72 100644 (file)
@@ -1,3 +1,7 @@
+Mon Jan  2 17:40:21 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+       * config/sim-gdb: New file, simulator testing support.
+
 Wed Dec 28 12:21:50 1994  Jeff Law  (law@snake.cs.utah.edu)
 
        * gdb.base/interrupt.exp: Test calling func1 twice.
diff --git a/gdb/testsuite/config/sim-gdb.exp b/gdb/testsuite/config/sim-gdb.exp
new file mode 100644 (file)
index 0000000..72c0484
--- /dev/null
@@ -0,0 +1,120 @@
+# Test Framework Driver for GDB driving a builtin simulator
+#   Copyright 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.  */
+
+load_lib gdb.exp
+
+#
+# gdb_version -- extract and print the version number of gdb
+#
+proc gdb_version {} {
+    default_gdb_version
+}
+
+#
+# gdb_target_sim
+# Set gdb to target the simulator
+#
+proc gdb_target_sim { } {
+    global targetname
+    global prompt
+    global verbose
+    global exit_status
+
+    # force the height to "unlimited", so no pagers get used
+    send "set height 0\n"
+    expect -re ".*$prompt $" {}
+    # force the width to "unlimited", so no wraparound occurs
+    send "set width 0\n"
+    expect -re ".*$prompt $" {}
+
+    send "target sim\n"
+    set timeout 60
+    expect {
+       -re "Connected to the simulator.*$prompt $"     {
+           verbose "Set target to sim"
+       }
+       timeout { 
+           perror "Couldn't set target for simulator."
+           cleanup
+           exit $exit_status
+       }
+    }
+    set timeout 10
+}
+
+#
+# gdb_load -- load a file into the debugger.
+#             return a -1 if anything goes wrong.
+#
+proc gdb_load { arg } {
+    global verbose
+    global loadpath
+    global loadfile
+    global GDB
+    global prompt
+
+    if [gdb_file_cmd $arg] then { return -1 }
+
+    gdb_target_sim
+
+    send "load\n"
+    set timeout 2400
+    expect {
+       -re ".*$prompt $" {
+           if $verbose>1 then {
+               send_user "Loaded $arg into $GDB\n"
+           }
+           set timeout 30
+           return 1
+       }
+       -re "$prompt $"     {
+           if $verbose>1 then {
+        perror "GDB couldn't load."
+           }
+       }
+       timeout {
+           if $verbose>1 then {
+        perror "Timed out trying to load $arg."
+           }
+       }
+    }
+}
+
+#
+# gdb_start -- start GDB running.
+#
+proc gdb_start { } {
+    default_gdb_start
+    verbose "Setting up target, Please wait..."
+    gdb_target_sim
+}
+
+#
+# gdb_exit -- exit gdb
+#
+proc gdb_exit { } {
+    catch default_gdb_exit
+}
+
+gdb_start
+
+# make sure gdb has actually started, otherwise if the first test
+# timesout, DejaGnu crashes
+send "\n"
+expect {
+    -re "$prompt"
+    }