aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-05-29 22:11:05 +0200
committerTom de Vries <tdevries@suse.de>2023-05-29 22:11:05 +0200
commite20baea1298d2227db953862d131d9bbf91cf522 (patch)
tree0f35bcd45efa1af79f81b996c2e37641aee22033
parentf818c32ba4596a60e77b464cb690aea65ed31346 (diff)
downloadfsf-binutils-gdb-e20baea1298d2227db953862d131d9bbf91cf522.zip
fsf-binutils-gdb-e20baea1298d2227db953862d131d9bbf91cf522.tar.gz
fsf-binutils-gdb-e20baea1298d2227db953862d131d9bbf91cf522.tar.bz2
[gdb/testsuite] Fix linefeed scrolling in tuiterm
I came across a bug in the implementation of line feed in tuiterm, and added a unit test that exposes it. Before sending the line feed we have: ... Screen Dump (size 8 columns x 4 rows, cursor at column 0, row 3): 0 abcdefgh 1 ijklmnop 2 qrstuvwx 3 yz01234 ... and after it we have: ... Screen Dump (size 8 columns x 4 rows, cursor at column 0, row 1): 0 ijklmnop 1 qrstuvwx 2 yz01234 3 yz01234 ... Note how the cursor started at row 3 and after the line feed ended up at row 1, while it should have stayed in row 3. Fix this by moving "incr _cur_row -1" one level up in the loop nest in proc _ctl_0x0a. Tested on x86_64-linux.
-rw-r--r--gdb/testsuite/gdb.tui/tuiterm.exp13
-rw-r--r--gdb/testsuite/lib/tuiterm.exp3
2 files changed, 15 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.tui/tuiterm.exp b/gdb/testsuite/gdb.tui/tuiterm.exp
index c175141..74800d9 100644
--- a/gdb/testsuite/gdb.tui/tuiterm.exp
+++ b/gdb/testsuite/gdb.tui/tuiterm.exp
@@ -131,6 +131,18 @@ proc test_linefeed { } {
} 1 3
}
+proc test_linefeed_scroll { } {
+ Term::_move_cursor 0 3
+ Term::_ctl_0x0a
+ check "linefeed_scroll" {
+ "ijklmnop"
+ "qrstuvwx"
+ "yz01234 "
+ "yz01234 "
+ } 0 3
+ Term::dump_screen
+}
+
proc test_carriage_return { } {
Term::_move_cursor 1 2
Term::_ctl_0x0d
@@ -761,6 +773,7 @@ proc run_one_test_large { test_proc_name } {
foreach_with_prefix test {
test_backspace
test_linefeed
+ test_linefeed_scroll
test_carriage_return
test_insert_characters
test_cursor_up
diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp
index b7c8775..96f9b9d 100644
--- a/gdb/testsuite/lib/tuiterm.exp
+++ b/gdb/testsuite/lib/tuiterm.exp
@@ -115,8 +115,9 @@ namespace eval Term {
for {set x 0} {$x < $_cols} {incr x} {
set _chars($x,$y) $_chars($x,$next_y)
}
- incr _cur_row -1
}
+
+ incr _cur_row -1
}
}
}