Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# Copyright 2012-2020 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"