1 # This testcase is part of GDB
, the GNU debugger.
3 # Copyright
2013-2024 Free Software Foundation
, Inc.
5 # This
program is free software
; you can redistribute it and
/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation
; either version
3 of the License
, or
8 #
(at your option
) any later version.
10 # This
program is distributed in the hope that it will be useful
,
11 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License
for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this
program.
If not
, see
<http
://www.gnu.org
/licenses
/>.
18 # Test relies
on checking gdb debug output.
Do not run
if gdb debug is
19 # enabled as
any debug will be redirected to the
log.
20 require
!gdb_debug_enabled
24 # The test
program exits after a
while, in case GDB crashes. Make it
25 # wait at least as long as we may wait before declaring a time out
27 set options
{ "additional_flags=-DTIMEOUT=$timeout" debug }
28 if { [build_executable $
{testfile
}.exp $
{testfile
} $srcfile $options
] == -1 } {
32 #
Return 0 on success
, non
-zero otherwise.
34 proc do_test
{ pass
} {
35 global testfile gdb_prompt binfile pf_prefix
41 gdb_breakpoint
"${testfile}.c:[gdb_get_line_number "loop-line" ${testfile}.c]" \
44 gdb_test
"continue" "Temporary breakpoint .* loop-line .*"
46 gdb_test_no_output
"set range-stepping off"
47 gdb_test_no_output
"set debug infrun 1"
50 gdb_test_multiple
"step" "run a bit" {
51 -re
{\
[infrun\
] process_event_stop_test
: stepping inside range
} {
57 verbose
-log "$pf_prefix $test: did not run"
61 set gdb_pid
[exp_pid
-i
[board_info host fileid
]]
62 remote_exec host
"kill -TERM ${gdb_pid}"
67 #
If GDB mishandles the SIGTERM and doesn
't exit, this should FAIL
68 # with timeout. We don't expect a GDB prompt
, so we see one
,
70 gdb_test_multiple "" "expect eof" {
72 pass "$gdb_test_name (got eof)"
75 -re {\[infrun\] process_event_stop_test: stepping inside range} {
80 verbose -log "$pf_prefix $test: stepped $stepping times"
84 # Testcase was FAILing approx. on 10th pass with unpatched GDB.
85 # 50 runs should be approx. a safe number to be sure it is fixed now.
88 for {set pass 0} {$pass < $passes} {incr pass} {
89 with_test_prefix "pass=$pass" {
90 clean_restart ${testfile}
91 if { [do_test $pass] != 0 } {
97 gdb_assert {$pass == $passes} "$passes SIGTERM passes"