home *** CD-ROM | disk | FTP | other *** search
- # Copyright (C) 1988, 1990, 1991, 1992 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 Rob Savoye. (rob@cygnus.com)
-
- if $tracelevel then {
- strace $tracelevel
- }
-
- #
- # test running programs
- #
- set prms_id 0
- set bug_id 0
-
- set binfile "gdbme"
-
- if ![file exists $objdir/$subdir/$binfile] then {
- error "$objdir/$subdir/$binfile does not exist."
- alldone
- }
-
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_load $objdir/$subdir/$binfile
-
- # Run with no arguments.
- # On VxWorks this justs make sure the program was run.
- send "run\n"
- expect -re "run\r\n" {}
- if [istarget "*-*-vxworks"] then {
- set timeout 120
- expect {
- -i $shell_id -re "usage: factorial <number>"\
- { pass "run $binfile" }
- timeout { fail "(timeout) run $binfile" }
- }
- set timeout 10
- expect -re "$prompt $" {}
- } else {
- expect {
- -re "Starting program.*usage: factorial <number>.*$prompt $"\
- { pass "run $binfile" }
- -re ".*$prompt $" { fail "run $binfile" }
- timeout { fail "(timeout) run $binfile" }
- }
- }
-
- # Now run with some arguments
- if [istarget "*-*-vxworks"] then {
- send "run vxmain \"5\"\n"
- expect -re "run vxmain \"5\"\r\n" {}
- set timeout 120
- expect {
- -i $shell_id "120" { pass "run $binfile with arg" }
- timeout { fail "(timeout) run $binfile with arg" }
- }
- set timeout 10
- expect -re "$prompt $" {}
- } else {
- if [istarget "a29k-*-udi"] then {
- # FIXME: If PR 2415 is fixed, gdb_target_udi and gdb_load are
- # not needed.
- gdb_target_udi
- gdb_load $objdir/$subdir/$binfile
- send "run gdbme 5\n"
- expect {
- -re "Starting program.*120.*$prompt $"\
- { pass "run $binfile with arg" }
- -re ".*$prompt $" { fail "run $binfile with arg" }
- timeout { fail "(timeout) run $binfile with arg" }
- }
- } else {
- setup_xfail "mips-idt-*"
- send "run 5\n"
- expect {
- -re "Starting program.*$binfile.*120.*$prompt $"\
- { pass "run $binfile with arg" }
- -re ".*$prompt $" { fail "run $binfile with arg" }
- timeout { fail "(timeout) run $binfile with arg" }
- }
- }
- }
-
- # Run again with same arguments.
- setup_xfail "mips-idt-*"
- if [istarget "a29k-*-udi"] then {
- # FIXME: If PR 2415 is fixed, this is not needed.
- gdb_target_udi
- gdb_load $objdir/$subdir/$binfile
- }
- send "run\n"
- expect -re "run\r\n" {}
- if [istarget "*-*-vxworks"] then {
- set timeout 120
- expect {
- -i $shell_id "120" { pass "run $binfile again" }
- timeout { fail "(timeout) run $binfile again" }
- }
- set timeout 10
- expect -re "$prompt $" {}
- } else {
- expect {
- -re "Starting program.*120.*$prompt $"\
- { pass "run $binfile again" }
- -re ".*$prompt $" { fail "run $binfile again" }
- timeout { fail "(timeout) run $binfile again" }
- }
- }
-
- # Use "set args" command to specify no arguments as default and run again.
- if [istarget "*-*-vxworks"] then {
- send "set args main\n"
- } else {
- send "set args\n"
- }
- expect -re "$prompt $"
-
- if [istarget "a29k-*-udi"] then {
- # FIXME: If PR 2415 is fixed, this is not needed.
- gdb_target_udi
- gdb_load $objdir/$subdir/$binfile
- }
- send "run\n"
- expect -re "run\r\n" {}
- if [istarget "*-*-vxworks"] then {
- set timeout 120
- expect {
- -i $shell_id "usage: factorial <number>"\
- { pass "set args to nil" }
- timeout { fail "(timeout) set args to nil" }
- }
- set timeout 10
- expect -re "$prompt $" {}
- } else {
- expect {
- -re "Starting program.*usage: factorial <number>.*$prompt $"\
- { pass "set args to nil" }
- -re ".*$prompt $" { fail "set args to nil" }
- timeout { fail "(timeout) set args to nil" }
- }
- }
-
- # Use "set args" command to specify an argument and run again.
- setup_xfail "mips-idt-*"
- if [istarget "*-*-vxworks"] then {
- send "set args vxmain \"6\"\n"
- } else {
- if [istarget "a29k-*-udi"] then {
- send "set args gdbme 6\n"
- } else {
- send "set args 6\n"
- }
- }
- expect -re "$prompt $"
- if [istarget "a29k-*-udi"] then {
- # FIXME: If PR 2415 is fixed, this is not needed.
- gdb_target_udi
- gdb_load $objdir/$subdir/$binfile
- }
- send "run\n"
- expect -re "run\r\n" {}
- if [istarget "*-*-vxworks"] then {
- set timeout 120
- expect {
- -i $shell_id "720" { pass "run $binfile again" }
- timeout { fail "(timeout) run $binfile again" }
- }
- set timeout 10
- expect -re "$prompt $" {}
- } else {
- expect {
- -re "Starting program.*720.*$prompt $"\
- { pass "set args" }
- -re ".*$prompt $" { fail "set args" }
- timeout { fail "(timeout) set args" }
- }
- }
-
- if [istarget "a29k-*-udi"] then {
- # FIXME: If PR 2415 is fixed, this is not needed.
- gdb_target_udi
- gdb_load $objdir/$subdir/$binfile
- }
-
- # GOAL: Test that shell is being used with "run".
- if ![istarget "*-*-vxworks"] then {
- setup_xfail "mips-idt-*"
- send "run `echo 8`\n"
- expect {
- -re "Starting program.*40320.*$prompt $"\
- { pass "run with shell" }
- -re ".*$prompt $" { fail "run with shell" }
- timeout { fail "(timeout) run with shell" }
- }
- }
-
- if [istarget "a29k-*-udi"] then {
- # FIXME: If PR 2415 is fixed, this is not needed.
- gdb_target_udi
- }
-
- # Reset the default arguments for VxWorks
- if [istarget "*-*-vxworks"] then {
- send "set args main\n"
- expect -re ".*$prompt $" {}
- }
-