1 # This testcase is part of GDB
, the GNU debugger.
3 # Copyright
2013-2019 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
/>.
20 # The test
program exits after a
while, in case GDB crashes. Make it
21 # wait at least as long as we may wait before declaring a time out
23 set options
{ "additional_flags=-DTIMEOUT=$timeout" debug }
24 if { [build_executable $
{testfile
}.exp $
{testfile
} $srcfile $options
] == -1 } {
28 #
Return 0 on success
, non
-zero otherwise.
30 proc do_test
{ pass
} {
31 global testfile gdb_prompt binfile pf_prefix
37 gdb_breakpoint
"${testfile}.c:[gdb_get_line_number "loop-line" ${testfile}.c]" \
40 # gdb_continue_to_breakpoint would print a pass message.
41 gdb_test
"continue" "Temporary breakpoint .* loop-line .*" ""
43 gdb_test_no_output
"set range-stepping off" ""
44 gdb_test_no_output
"set debug infrun 1" ""
46 set test
"run a bit #$pass"
48 gdb_test_multiple
"step" $test {
49 -re
"infrun: stepping inside range" {
51 verbose
-log "$pf_prefix $test: ran"
56 verbose
-log "$pf_prefix $test: did not run"
60 set gdb_pid
[exp_pid
-i
[board_info host fileid
]]
61 remote_exec host
"kill -TERM ${gdb_pid}"
63 set test
"expect eof #$pass"
66 #
If GDB mishandles the SIGTERM and doesn
't exit, this should FAIL
67 # with timeout. We don't expect a GDB prompt
, so we see one
,
69 gdb_test_multiple "" $test {
71 verbose -log "$pf_prefix $test: got eof"
74 -re "infrun: stepping inside range" {
79 verbose -log "$pf_prefix $test: stepped $stepping times"
83 # Testcase was FAILing approx. on 10th pass with unpatched GDB.
84 # 50 runs should be approx. a safe number to be sure it is fixed now.
87 for {set pass 0} {$pass < $passes} {incr pass} {
88 clean_restart ${testfile}
89 if { [do_test $pass] != 0 } {
94 gdb_assert {$pass == $passes} "$passes SIGTERM passes"