]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.base/many-headers.exp
Update copyright year range in header of all files managed by GDB
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.base / many-headers.exp
1 # Copyright 2018-2023 Free Software Foundation, Inc.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 3 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16 # Test if gdb can read a core file with a program header size of 4MB, if the
17 # stack size is limited to 4MB.
18
19 if { [target_info gdb_protocol] != "" } {
20 # Even though the feature under features being tested are supported by
21 # gdbserver, the way this test is written doesn't make it easy with a
22 # remote target.
23 unsupported "not native"
24 return
25 }
26
27 standard_testfile
28
29 if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
30 return -1
31 }
32
33 # Generate core file.
34 set corefile [core_find $binfile]
35 if {$corefile == ""} {
36 return 0
37 }
38
39 # Limit is in kb, so this is 4MB.
40 set stack_limit 4096
41
42 # Verify if we can set the stack limit.
43 catch {
44 system [concat \
45 "(" \
46 "ulimit -s $stack_limit;" \
47 ")"]
48 } msg
49 if { "$msg" != "" } {
50 untested "Can't set stack limit"
51 return -1
52 }
53
54 set cmd \
55 [concat \
56 "(" \
57 "ulimit -s $stack_limit;" \
58 "$GDB $INTERNAL_GDBFLAGS $GDBFLAGS -batch -core=$corefile" \
59 ")"]
60 verbose -log $cmd
61
62 # Run gdb with stack limit
63 set output [standard_output_file OUTPUT]
64 catch {
65 system "$cmd > $output 2>&1"
66 } msg
67 verbose -log [exec cat $output]
68 file delete $output
69
70 set test "read core file"
71 if { "$msg" == "" } {
72 pass "$test"
73 } else {
74 verbose -log $msg
75 fail "$test"
76 }