diff options
Diffstat (limited to 'gdb/testsuite/gdb.base/thread-bp-multi-loc.exp')
-rw-r--r-- | gdb/testsuite/gdb.base/thread-bp-multi-loc.exp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/thread-bp-multi-loc.exp b/gdb/testsuite/gdb.base/thread-bp-multi-loc.exp new file mode 100644 index 00000000000..6e1121e867a --- /dev/null +++ b/gdb/testsuite/gdb.base/thread-bp-multi-loc.exp @@ -0,0 +1,67 @@ +# Copyright 2022-2023 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/>. + +# Create a multi-location breakpoint with a thread condition, then check the +# output of 'info breakpoints' to ensure that the thread condition is +# displayed correctly. + +standard_testfile + +if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } { + return -1 +} + +if {![runto_main]} { + return -1 +} + +delete_breakpoints + +gdb_breakpoint "foo thread 1" +set bp_number [get_integer_valueof "\$bpnum" 0] +if { $bp_number == 0 } { + unresolved "breakpoint not placed correctly" + return -1 +} + +set saw_header false +set saw_cond false +set loc_count 0 +gdb_test_multiple "info breakpoints" \ + "check thread condition is displayed correctly" { + -re "\r\nNum\\s+\[^\r\n\]+\r\n" { + exp_continue + } + + -re "^$bp_number\\s+breakpoint\\s+keep\\s+y\\s+<MULTIPLE>\\s*\r\n" { + set saw_header true + exp_continue + } + + -re "^\\s+stop only in thread 1\r\n" { + set saw_cond true + exp_continue + } + + -re "^$bp_number\\.\[123\]\\s+\[^\r\n\]+:${decimal}\r\n" { + incr loc_count + exp_continue + } + + -re "^$gdb_prompt $" { + gdb_assert { $saw_header && $saw_cond && $loc_count == 3} \ + $gdb_test_name + } +} |