From 8ef36cf3637b82aaa7cb850a6179c456e3f5d2b2 Mon Sep 17 00:00:00 2001 From: Stan Shebs Date: Tue, 3 Jan 1995 01:44:08 +0000 Subject: [PATCH] * config/sim-gdb: New file, simulator testing support. --- gdb/testsuite/ChangeLog | 4 ++ gdb/testsuite/config/sim-gdb.exp | 120 +++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 gdb/testsuite/config/sim-gdb.exp diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 8c65a9f455..83e34d96f9 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +Mon Jan 2 17:40:21 1995 Stan Shebs + + * 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 index 0000000000..72c048473e --- /dev/null +++ b/gdb/testsuite/config/sim-gdb.exp @@ -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" + } -- 2.34.1