old-cross-binutils/gdb/testsuite/gdb.mi/mi-info-os.exp
Pedro Alves c6a9e42ce4 gdb.mi/mi-info-os.exp: Fix cross-debugger testing
A live target is required for `-info-os' to work in non-native
configurations.

 (gdb)
 Expecting: ^(-info-os[
 ]+)?(.*\^done,OSDataTable=.*[
 ]+[(]gdb[)]
 [ ]*)
 -info-os
 ^error,msg="Don't know how to get OS data.  Try \"help target\"."
 (gdb)
 FAIL: gdb.mi/mi-info-os.exp: -info-os

If GDB does have a native configuration included, but we're testing
remote, it'll be worse, as if we're not connected yet, -info-os will
run against the default run target, and pass, falsely giving the
impression the remote bits were exercised.

gdb/testsuite/
2014-01-09  Maciej W. Rozycki  <macro@codesourcery.com>
	    Pedro Alves  <palves@redhat.com>

	* gdb.mi/mi-info-os.exp: Connect to the target with
        mi_gdb_target_load.
2014-01-09 19:57:13 +00:00

58 lines
1.8 KiB
Text

# Copyright 2012-2014 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 mi-support.exp
set MIFLAGS "-i=mi"
# This test is Linux-only.
if ![istarget *-*-linux*] then {
unsupported "mi-info-os.exp"
return -1
}
# Support for XML-output is needed to run this test.
if [gdb_skip_xml_test] then {
unsupported "mi-info-os.exp"
return -1
}
gdb_exit
if [mi_gdb_start] {
continue
}
standard_testfile basics.c
if [build_executable "Failed to build $testfile" $testfile $srcfile \
debug] {
return -1;
}
if {[mi_gdb_load $binfile] < 0} {
return -1
}
# When testing a cross configuration, we need to be sure to first
# connect to the target. If we didn't do that, GDB would try running
# the command against the default run target. The usual way to do
# that and cover all targets is to run to main, with mi_run_to_main.
# However, with native configurations, -info-os should work before
# running any program, so we want to avoid "run". Using
# mi_gdb_target_load directly instead achieves this.
if {[mi_gdb_target_load] < 0} {
return -1
}
# Try the argument-less form that lists all the types in a table.
mi_gdb_test "-info-os" ".*\\^done,OSDataTable=.*" "-info-os"