Files
binutils-gdb/gdb/testsuite/gdb.base/many-headers.exp
Christina Schimpe 857ef95cd9 testsuite: add untested in case OS corefile is not found
Even though the core_find proc will log a warning, it's better to log
"untested" and then terminate the test.  This will help to avoid
silently skipped tests, when running the testsuite.  Most of the tests
already do that.  This patch adds the missing ones.

Approved-By: Luis Machado <luis.machado.foss@gmail.com>
2025-08-28 08:33:31 -07:00

78 lines
1.9 KiB
Plaintext

# Copyright 2018-2025 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 if gdb can read a core file with a program header size of 4MB, if the
# stack size is limited to 4MB.
if { [target_info gdb_protocol] != "" } {
# Even though the feature under features being tested are supported by
# gdbserver, the way this test is written doesn't make it easy with a
# remote target.
unsupported "not native"
return
}
standard_testfile
if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
return -1
}
# Generate core file.
set corefile [core_find $binfile]
if {$corefile == ""} {
untested "unable to create or find corefile"
return 0
}
# Limit is in kb, so this is 4MB.
set stack_limit 4096
# Verify if we can set the stack limit.
catch {
system [concat \
"(" \
"ulimit -s $stack_limit;" \
")"]
} msg
if { "$msg" != "" } {
untested "Can't set stack limit"
return -1
}
set cmd \
[concat \
"(" \
"ulimit -s $stack_limit;" \
"$GDB $INTERNAL_GDBFLAGS $GDBFLAGS -batch -core=$corefile" \
")"]
verbose -log $cmd
# Run gdb with stack limit
set output [standard_output_file OUTPUT]
catch {
system "$cmd > $output 2>&1"
} msg
verbose -log [exec cat $output]
file delete $output
set test "read core file"
if { "$msg" == "" } {
pass "$test"
} else {
verbose -log $msg
fail "$test"
}