binutils-gdb/gdb/testsuite/gdb.base/clear_non_user_bp.exp
Andrew Burgess 65a33d75c2 gdb/testsuite: remove use of then keyword from gdb.base/*.exp
The canonical form of 'if' in modern TCL is 'if {} {}'.  But there's
still a bunch of places in the testsuite where we make use of the
'then' keyword, and sometimes these get copies into new tests, which
just spreads poor practice.

This commit removes all use of the 'then' keyword from the gdb.base/
test script directory.

There should be no changes in what is tested after this commit.
2022-11-28 21:04:09 +00:00

72 lines
2.0 KiB
Plaintext

# Copyright 2022 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/>.
# Regression test for PR gdb/7161. Test that GDB cannot delete non-user
# breakpoints with clear command.
# get_first_maint_bp_num
#
# Purpose:
# Get the first number of all internal breakpoints when using command
# "maint info breakpoints".
#
# Parameter:
# None.
#
# Return:
# Internal breakpoint number, which is negative.
#
proc get_first_maint_bp_num { } {
gdb_test_multiple "maint info break" "find first internal bp num" {
-re -wrap "(-\[0-9\]).*" {
return $expect_out(1,string)
}
}
return ""
}
standard_testfile .c
# This testcase just needs a "Hello world" source file, reuse
# gdb.base/main.c instead of adding a new one.
if { [gdb_compile "${srcdir}/${subdir}/main.c" "${binfile}" executable {debug}] != "" } {
untested "failed to compile"
return -1
}
# Start with a fresh gdb.
clean_restart ${binfile}
if {![runto_main]} {
return 0
}
set bp_num [get_first_maint_bp_num]
set bp_addr [gdb_get_bp_addr $bp_num]
gdb_test "maint info break $bp_num" \
"$bp_num.*$bp_addr.*" \
"maint info breakpoint \$bp_num"
gdb_test "clear *$bp_addr" \
"No breakpoint at \\*$bp_addr." \
"clear internal breakpoint"
# Check again, make sure that GDB really didn't delete the internal breakpoint.
gdb_test "maint info break $bp_num" \
"$bp_num.*$bp_addr.*" \
"maint info breakpoint \$bp_num after clear"