# Copyright (C) 2012-2013 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/>.

load_lib gdbserver-support.exp

# We test for skip_shlib_tests in this test because without a main
# exec file we only have the exec target loaded if shared libraries
# are present.
if {[skip_gdbserver_tests] || [skip_shlib_tests]} {
    return
}

standard_testfile server.c
if [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] {
    return -1
}

gdb_test "file" ".*" "file" \
	 {Discard symbol table from `.*'\? \(y or n\) } "y"
gdbserver_run ""
gdb_test "set sysroot remote:"
gdb_test "info files" "\r\nLocal exec file:\r\n\t<no file loaded>"
