aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.tui/basic.exp
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-12-22 16:52:56 -0700
committerAndrew Burgess <andrew.burgess@embecosm.com>2020-01-09 23:11:46 +0000
commit9ae6bf640dc7c950e6f36097a3d2d760a132a542 (patch)
tree56debc86e8389a30050d484139d13ddb6024240c /gdb/testsuite/gdb.tui/basic.exp
parentb2efe70cf34e2f3ada8d0def69e53f27a6b71578 (diff)
downloadfsf-binutils-gdb-9ae6bf640dc7c950e6f36097a3d2d760a132a542.zip
fsf-binutils-gdb-9ae6bf640dc7c950e6f36097a3d2d760a132a542.tar.gz
fsf-binutils-gdb-9ae6bf640dc7c950e6f36097a3d2d760a132a542.tar.bz2
gdb: Fix scrolling in TUI
Hannes Domani pointed out that my previous patch to fix the "list" command in the TUI instead broke vertical scrolling. While looking at this, I found that do_scroll_vertical calls print_source_lines, which seems like a very roundabout way to change the source window. This patch removes this oddity and fixes the bug at the same time. I've added a new test case. This is somewhat tricky, because the obvious approach of sending a dummy command after the scroll did not work -- due to how the TUI works, sennding a command causes the scroll to take effect. gdb/ChangeLog 2019-12-22 Tom Tromey <tom@tromey.com> PR tui/18932: * tui/tui-source.c (tui_source_window::do_scroll_vertical): Call update_source_window, not print_source_lines. gdb/testsuite/ChangeLog 2019-12-22 Tom Tromey <tom@tromey.com> PR tui/18932: * lib/tuiterm.exp (Term::wait_for): Rename from _accept. Return a meangingful value. (Term::command, Term::resize): Update. * gdb.tui/basic.exp: Add scrolling test. Change-Id: I9636a7c8a8cade37431c6165ee996a9d556ef1c8
Diffstat (limited to 'gdb/testsuite/gdb.tui/basic.exp')
-rw-r--r--gdb/testsuite/gdb.tui/basic.exp13
1 files changed, 13 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.tui/basic.exp b/gdb/testsuite/gdb.tui/basic.exp
index c3a3fdd..be822f8 100644
--- a/gdb/testsuite/gdb.tui/basic.exp
+++ b/gdb/testsuite/gdb.tui/basic.exp
@@ -35,6 +35,19 @@ gdb_assert {![string match "No Source Available" $text]} \
Term::command "list main"
Term::check_contents "list main" "21 *return 0"
+# Get the first source line.
+set line [Term::get_line 1]
+# Send an up arrow.
+send_gdb "\033\[A"
+# Wait for a redraw and check that the first line changed.
+if {[Term::wait_for [string_to_regexp $line]] \
+ && [Term::get_line 1] != $line\
+ && [Term::get_line 2] == $line} {
+ pass "scroll up"
+} else {
+ fail "scroll up"
+}
+
Term::check_box "source box" 0 0 80 15
Term::command "layout asm"