diff options
Diffstat (limited to 'gdb/testsuite/gdb.server/non-existing-program.exp')
-rw-r--r-- | gdb/testsuite/gdb.server/non-existing-program.exp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.server/non-existing-program.exp b/gdb/testsuite/gdb.server/non-existing-program.exp new file mode 100644 index 0000000..f842c44 --- /dev/null +++ b/gdb/testsuite/gdb.server/non-existing-program.exp @@ -0,0 +1,63 @@ +# This testcase is part of GDB, the GNU debugger. + +# Copyright 2015 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 3 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, see <http://www.gnu.org/licenses/>. + +# Test starting gdbserver passing it the name of a non-existing +# program. + +load_lib gdbserver-support.exp + +standard_testfile + +if { [skip_gdbserver_tests] } { + return 0 +} + +set gdbserver [find_gdbserver] +if { $gdbserver == "" } { + fail "could not find gdbserver" + return +} + +# Fire off gdbserver. The port doesn't really matter, gdbserver tries +# to spawn the program before opening the connection. +set spawn_id [remote_spawn target "$gdbserver stdio non-existing-program"] + +set msg "gdbserver exits cleanly" +set saw_exiting 0 +expect { + # This is what we get on ptrace-based targets. + -re "stdin/stdout redirected.*No program to debug\r\nExiting\r\n$" { + set saw_exiting 1 + exp_continue + } + # This is what we get on Windows. + -re "Error creating process\r\n\r\nExiting\r\n$" { + set saw_exiting 1 + exp_continue + } + -re "A problem internal to GDBserver has been detected" { + fail "$msg (GDBserver internal error)" + wait + } + eof { + gdb_assert $saw_exiting $msg + wait + } + timeout { + fail "$msg (timeout)" + } +} |