mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-30 13:23:50 +08:00
gdb.base/commands.exp: Test loop_break and loop_continue in nested loops
This patch improves the loop_break and loop_continue tests to verify that they work as expected when multiple loops are nested (they affect the inner loop). gdb/testsuite/ChangeLog: * gdb.base/commands.exp (loop_break_test, loop_continue_test): Test with nested loops.
This commit is contained in:
gdb/testsuite
@ -1,3 +1,8 @@
|
|||||||
|
2017-09-04 Simon Marchi <simon.marchi@ericsson.com>
|
||||||
|
|
||||||
|
* gdb.base/commands.exp (loop_break_test, loop_continue_test):
|
||||||
|
Test with nested loops.
|
||||||
|
|
||||||
2017-09-04 Simon Marchi <simon.marchi@ericsson.com>
|
2017-09-04 Simon Marchi <simon.marchi@ericsson.com>
|
||||||
|
|
||||||
* gdb.base/commands.exp: Call the new procedures.
|
* gdb.base/commands.exp: Call the new procedures.
|
||||||
|
@ -1030,41 +1030,60 @@ proc define_if_without_arg_test {} {
|
|||||||
|
|
||||||
proc_with_prefix loop_break_test {} {
|
proc_with_prefix loop_break_test {} {
|
||||||
gdb_test_no_output "set \$a = 0" "initialize \$a"
|
gdb_test_no_output "set \$a = 0" "initialize \$a"
|
||||||
|
gdb_test_no_output "set \$total = 0" "initialize \$total"
|
||||||
|
|
||||||
gdb_test \
|
gdb_test \
|
||||||
[multi_line_input \
|
[multi_line_input \
|
||||||
"while \$a < 5" \
|
"while \$a < 5" \
|
||||||
" if \$a == 3" \
|
" if \$a == 4" \
|
||||||
" loop_break" \
|
" loop_break" \
|
||||||
" end" \
|
" end" \
|
||||||
" set \$a = \$a + 1" \
|
" set \$b = 0" \
|
||||||
"end"] \
|
" while \$b < 5" \
|
||||||
"" \
|
" if \$b == 2" \
|
||||||
"run while loop"
|
" loop_break" \
|
||||||
|
" end" \
|
||||||
|
" set \$total = \$total + 1" \
|
||||||
|
" set \$b = \$b + 1" \
|
||||||
|
" end" \
|
||||||
|
" set \$a = \$a + 1" \
|
||||||
|
"end"] \
|
||||||
|
"" \
|
||||||
|
"run while loop"
|
||||||
|
|
||||||
gdb_test "print \$a" " = 3" "validate \$a"
|
gdb_test "print \$a" " = 4" "validate \$a"
|
||||||
|
gdb_test "print \$b" " = 2" "validate \$b"
|
||||||
|
gdb_test "print \$total" " = 8" "validate \$total"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Test the loop_continue command.
|
# Test the loop_continue command.
|
||||||
|
|
||||||
proc_with_prefix loop_continue_test {} {
|
proc_with_prefix loop_continue_test {} {
|
||||||
gdb_test_no_output "set \$a = 0" "initialize \$a"
|
gdb_test_no_output "set \$a = 0" "initialize \$a"
|
||||||
gdb_test_no_output "set \$b = 0" "initialize \$b"
|
gdb_test_no_output "set \$total = 0" "initialize \$total"
|
||||||
|
|
||||||
gdb_test \
|
gdb_test \
|
||||||
[multi_line_input \
|
[multi_line_input \
|
||||||
"while \$a < 5" \
|
"while \$a < 5" \
|
||||||
" set \$a = \$a + 1" \
|
" set \$a = \$a + 1" \
|
||||||
" if \$a % 2 == 0" \
|
" set \$b = 0" \
|
||||||
" loop_continue" \
|
" if \$a == 4" \
|
||||||
" end" \
|
" loop_continue" \
|
||||||
" set \$b = \$b + 1" \
|
" end" \
|
||||||
"end"] \
|
" while \$b < 5" \
|
||||||
"" \
|
" set \$b = \$b + 1" \
|
||||||
"run while loop"
|
" if \$b == 2" \
|
||||||
|
" loop_continue" \
|
||||||
|
" end" \
|
||||||
|
" set \$total = \$total + 1" \
|
||||||
|
" end" \
|
||||||
|
"end"] \
|
||||||
|
"" \
|
||||||
|
"run while loop"
|
||||||
|
|
||||||
gdb_test "print \$a" " = 5" "validate \$a"
|
gdb_test "print \$a" " = 5" "validate \$a"
|
||||||
gdb_test "print \$b" " = 3" "validate \$b"
|
gdb_test "print \$b" " = 5" "validate \$b"
|
||||||
|
gdb_test "print \$total" " = 16" "validate \$total"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Test an input line split with a continuation character (backslash)
|
# Test an input line split with a continuation character (backslash)
|
||||||
|
Reference in New Issue
Block a user