From: Christian Heller Date: Sun, 19 Oct 2025 04:48:53 +0000 (+0200) Subject: Greatly extend TUI drawing tests. X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/static/%7B%7Bdb.prefix%7D%7D/template?a=commitdiff_plain;h=0fe27f7916969065ccc6ee49b1b4996875955d46;p=ircplom Greatly extend TUI drawing tests. --- diff --git a/src/tests/tui_draw.test b/src/tests/tui_draw.test index 029635b..f0dda65 100644 --- a/src/tests/tui_draw.test +++ b/src/tests/tui_draw.test @@ -18,12 +18,13 @@ repeat lines-empty-4-in lines-empty-4-out +8 repeat lines-empty-4-in lines-empty-4-out +12 | lines-empty-16-out repeat lines-empty-4-in lines-empty-4-out +16 -repeat lines-empty-2-in lines-empty-2-out +19 -repeat lines-empty-1-in lines-empty-1-out +21 +repeat lines-empty-2-in lines-empty-2-out +20 | status-prompt-empty-in line 22 , :start)=====================================================================([0]§§ +| prompt-empty-in line 23 , > § §§ line 23 reverse §§ § +| prompt-empty-out | status-prompt-empty-out | empty-init-out @@ -36,12 +37,12 @@ repeat empty-init-in empty-init-out log 0 .!# invalid prompt command: not prefixed by / repeat lines-empty-16-in lines-empty-16-out repeat lines-empty-4-in lines-empty-4-out +16 -| history-lines-0:2-at-20-in -| history-lines-0:1-at-20-in +| history-lines-0:0:2-at-20-in +| history-lines-0:0:1-at-20-in line 20 on_black 20§§-§§-§§ §§ -| history-lines-0:1-at-20-out +| history-lines-0:0:1-at-20-out line 21 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: not prefixed by / §§ -| history-lines-0:2-at-20-out +| history-lines-0:0:2-at-20-out repeat status-prompt-empty-in status-prompt-empty-out # further inputs grow log upwards @@ -52,22 +53,24 @@ log 0 .!# invalid prompt command: /bar unknown | before-1st-scroll-in repeat lines-empty-16-in lines-empty-16-out repeat lines-empty-2-in lines-empty-2-out +16 -| history-lines-0:4-at-18-in -repeat history-lines-0:2-at-20-in history-lines-0:2-at-20-out -2 -| history-lines-2:4-at-20-in +| history-lines-0:0:4-at-18-in +repeat history-lines-0:0:2-at-20-in history-lines-0:0:2-at-20-out -2 +| history-lines-0:2:4-at-20-in line 20 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /foo unknown §§ line 21 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /bar unknown §§ -| history-lines-2:4-at-20-out -| history-lines-0:4-at-18-out +| history-lines-0:2:4-at-20-out +| history-lines-0:0:4-at-18-out repeat status-prompt-empty-in status-prompt-empty-out | before-1st-scroll-out # check scrolling up on short history > /window.history.scroll up | after-1st-scroll-in +| topmost-scroll-in repeat lines-empty-16-in lines-empty-16-out repeat lines-empty-4-in lines-empty-4-out +16 -repeat history-lines-0:1-at-20-in history-lines-0:1-at-20-out +repeat history-lines-0:0:1-at-20-in history-lines-0:0:1-at-20-out +| topmost-scroll-out line 21 reverse vvv [4] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ repeat status-prompt-empty-in status-prompt-empty-out | after-1st-scroll-out @@ -93,9 +96,7 @@ log 0 ..# /window.prompt.backspace log 0 ..# /window.prompt.move_cursor DIRECTION log 0 ..# /window.prompt.scroll DIRECTION | before-scrolldown-not-to-bottom-in -repeat lines-empty-16-in lines-empty-16-out -repeat lines-empty-4-in lines-empty-4-out +16 -repeat history-lines-0:1-at-20-in history-lines-0:1-at-20-out +repeat topmost-scroll-in topmost-scroll-out line 21 reverse vvv [16] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ repeat status-prompt-empty-in status-prompt-empty-out | before-scrolldown-not-to-bottom-out @@ -105,27 +106,29 @@ repeat status-prompt-empty-in status-prompt-empty-out | after-scrolldown-not-to-bottom-in repeat lines-empty-8-in lines-empty-8-out repeat lines-empty-1-in lines-empty-1-out +8 -| history-lines-0:8-at-9-in -repeat history-lines-0:4-at-18-in history-lines-0:4-at-18-out -9 -| history-lines-4:8-at-13-in -| history-lines-4:5-at-13-in +| history-lines-0:0:8-at-9-in +repeat history-lines-0:0:4-at-18-in history-lines-0:0:4-at-18-out -9 +| history-lines-0:4:8-at-13-in +| history-lines-0:4:5-at-13-in line 13 on_black,bright_cyan ..# §§:§§:§§ commands available in this window:§§ -| history-lines-4:5-at-13-out -| history-lines-5:6-at-14-in +| history-lines-0:4:5-at-13-out +| history-lines-0:5:6-at-14-in line 14 on_black,bright_cyan ..# §§:§§:§§ /connect HOST_PORT [NICKNAME_PW] [REALNAME_USERNAME]§§ -| history-lines-5:6-at-14-out -| history-lines-6:8-at-15-in +| history-lines-0:5:6-at-14-out +| history-lines-0:6:8-at-15-in line 15 on_black,bright_cyan ..# §§:§§:§§ /help§§ line 16 on_black,bright_cyan ..# §§:§§:§§ /list§§ -| history-lines-6:8-at-15-out -| history-lines-4:8-at-13-out -| history-lines-0:8-at-9-out -| history-lines-8:12-at-17-in +| history-lines-0:6:8-at-15-out +| history-lines-0:4:8-at-13-out +| history-lines-0:0:8-at-9-out +| history-lines-0:8:12-at-17-in line 17 on_black,bright_cyan ..# §§:§§:§§ /prompt_enter§§ line 18 on_black,bright_cyan ..# §§:§§:§§ /quit§§ line 19 on_black,bright_cyan ..# §§:§§:§§ /window TOWARDS§§ +| history-lines-0:11:12-at-20-in line 20 on_black,bright_cyan ..# §§:§§:§§ /window.history.scroll DIRECTION§§ -| history-lines-8:12-at-17-out +| history-lines-0:11:12-at-20-out +| history-lines-0:8:12-at-17-out line 21 reverse vvv [5] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ repeat status-prompt-empty-in status-prompt-empty-out | after-scrolldown-not-to-bottom-out @@ -139,19 +142,19 @@ repeat after-scrolldown-not-to-bottom-in after-scrolldown-not-to-bottom-out # scroll to bottom, check history still growing up even beyond upper fold > /window.history.scroll down repeat lines-empty-4-in lines-empty-4-out -repeat lines-empty-1-in lines-empty-1-out +5 -| history-lines-0:16-at-6-in -repeat history-lines-0:8-at-9-in history-lines-0:8-at-9-out -3 -repeat history-lines-8:12-at-17-in history-lines-8:12-at-17-out -3 -| history-lines-12:16-at-18-in -| history-lines-12:13-at-18-in +repeat lines-empty-2-in lines-empty-2-out +4 +| history-lines-0:0:16-at-6-in +repeat history-lines-0:0:8-at-9-in history-lines-0:0:8-at-9-out -3 +repeat history-lines-0:8:12-at-17-in history-lines-0:8:12-at-17-out -3 +| history-lines-0:12:16-at-18-in +| history-lines-0:12:13-at-18-in line 18 on_black,bright_cyan ..# §§:§§:§§ /window.paste§§ -| history-lines-12:13-at-18-out +| history-lines-0:12:13-at-18-out line 19 on_black,bright_cyan ..# §§:§§:§§ /window.prompt.backspace§§ line 20 on_black,bright_cyan ..# §§:§§:§§ /window.prompt.move_cursor DIRECTION§§ line 21 on_black,bright_cyan ..# §§:§§:§§ /window.prompt.scroll DIRECTION§§ -| history-lines-12:16-at-18-out -| history-lines-0:16-at-6-out +| history-lines-0:12:16-at-18-out +| history-lines-0:0:16-at-6-out repeat status-prompt-empty-in status-prompt-empty-out > /0 log 0 .!# invalid prompt command: /0 unknown @@ -170,29 +173,39 @@ log 0 .!# invalid prompt command: /6 unknown > /7 log 0 .!# invalid prompt command: /7 unknown | at-bottom-before-wrapped-in -repeat history-lines-2:4-at-20-in history-lines-2:4-at-20-out -20 -repeat history-lines-4:8-at-13-in history-lines-4:8-at-13-out -11 -repeat history-lines-8:12-at-17-in history-lines-8:12-at-17-out -11 -repeat history-lines-12:16-at-18-in history-lines-12:16-at-18-out -8 -| history-lines-16:24-at-14-in +repeat history-lines-0:2:4-at-20-in history-lines-0:2:4-at-20-out -20 +repeat history-lines-0:4:8-at-13-in history-lines-0:4:8-at-13-out -11 +repeat history-lines-0:8:12-at-17-in history-lines-0:8:12-at-17-out -11 +repeat history-lines-0:12:16-at-18-in history-lines-0:12:16-at-18-out -8 +| history-lines-0:16:24-at-14-in +| history-lines-0:16:20-at-14-in +| history-lines-0:16:18-at-14-in line 14 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /0 unknown§§ line 15 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /1 unknown§§ +| history-lines-0:16:18-at-14-out +| history-lines-0:18:19-at-16-in line 16 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /2 unknown§§ +| history-lines-0:18:19-at-16-out line 17 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /3 unknown§§ +| history-lines-0:16:20-at-14-out +| history-lines-0:20:22-at-18-in line 18 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /4 unknown§§ line 19 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /5 unknown§§ +| history-lines-0:20:22-at-18-out +| history-lines-0:22:23-at-20-in line 20 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /6 unknown§§ +| history-lines-0:22:23-at-20-out line 21 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /7 unknown§§ -| history-lines-16:24-at-14-out +| history-lines-0:16:24-at-14-out repeat status-prompt-empty-in status-prompt-empty-out | at-bottom-before-wrapped-out # quick look one scroll up to check single-scroll increase of below-scroll count (when up-scroll not limited, and all lines un-wrapped) > /window.history.scroll up repeat lines-empty-8-in lines-empty-8-out -repeat history-lines-0:8-at-9-in history-lines-0:8-at-9-out -1 -repeat history-lines-8:12-at-17-in history-lines-8:12-at-17-out -1 -repeat history-lines-12:13-at-18-in history-lines-12:13-at-18-out +2 +repeat history-lines-0:0:8-at-9-in history-lines-0:0:8-at-9-out -1 +repeat history-lines-0:8:12-at-17-in history-lines-0:8:12-at-17-out -1 +repeat history-lines-0:12:13-at-18-in history-lines-0:12:13-at-18-out +2 line 21 reverse vvv [12] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ repeat status-prompt-empty-in status-prompt-empty-out > /window.history.scroll down @@ -204,20 +217,20 @@ log 0 .!# invalid prompt command: /foo_0123456789_0123456789_01234567 unknown > /foo_0123456789_0123456789_012345678 log 0 .!# invalid prompt command: /foo_0123456789_0123456789_012345678 unknown | at-bottom-after-wrapped-in -repeat history-lines-5:6-at-14-in history-lines-5:6-at-14-out -14 -repeat history-lines-6:8-at-15-in history-lines-6:8-at-15-out -14 -| history-lines-8:16-at-3-in -repeat history-lines-8:12-at-17-in history-lines-8:12-at-17-out -14 -repeat history-lines-12:16-at-18-in history-lines-12:16-at-18-out -11 -| history-lines-8:16-at-3-out -repeat history-lines-16:24-at-14-in history-lines-16:24-at-14-out -3 -| history-lines-24:26-at-19-in +repeat history-lines-0:5:6-at-14-in history-lines-0:5:6-at-14-out -14 +repeat history-lines-0:6:8-at-15-in history-lines-0:6:8-at-15-out -14 +| history-lines-0:8:16-at-3-in +repeat history-lines-0:8:12-at-17-in history-lines-0:8:12-at-17-out -14 +repeat history-lines-0:12:16-at-18-in history-lines-0:12:16-at-18-out -11 +| history-lines-0:8:16-at-3-out +repeat history-lines-0:16:24-at-14-in history-lines-0:16:24-at-14-out -3 +| history-lines-0:24:26-at-19-in line 19 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /foo_0123456789_0123456789_01234567 unknown§§ -line 20 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /foo_0123456789_0123456789_012345678§§ -| history-lines-24:26-at-19-out -| history-lines-26:27-at-21-in +line 20 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /foo_0123456789_0123456789_012345678§§ +| history-lines-0:24:26-at-19-out +| history-lines-0:26:27-at-21-in line 21 on_black,bold,bright_red,bright_cyan unknown§§ -| history-lines-26:27-at-21-out +| history-lines-0:26:27-at-21-out repeat status-prompt-empty-in status-prompt-empty-out | at-bottom-after-wrapped-out @@ -226,7 +239,7 @@ repeat status-prompt-empty-in status-prompt-empty-out | scrollup-after-wrapped-in repeat lines-empty-4-in lines-empty-4-out repeat lines-empty-1-in lines-empty-1-out +4 -repeat history-lines-0:16-at-6-in history-lines-0:16-at-6-out -1 +repeat history-lines-0:0:16-at-6-in history-lines-0:0:16-at-6-out -1 | scrollup-after-wrapped-out line 21 reverse vvv [11] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ repeat status-prompt-empty-in status-prompt-empty-out @@ -248,11 +261,11 @@ repeat status-prompt-empty-in status-prompt-empty-out # check scroll-down over wrapped will snap down to bottom of wrapped > /window.history.scroll down -repeat history-lines-6:8-at-15-in history-lines-6:8-at-15-out -15 -repeat history-lines-8:16-at-3-in history-lines-8:16-at-3-out -1 -repeat history-lines-16:24-at-14-in history-lines-16:24-at-14-out -4 -repeat history-lines-24:26-at-19-in history-lines-24:26-at-19-out -1 -repeat history-lines-26:27-at-21-in history-lines-26:27-at-21-out -1 +repeat history-lines-0:6:8-at-15-in history-lines-0:6:8-at-15-out -15 +repeat history-lines-0:8:16-at-3-in history-lines-0:8:16-at-3-out -1 +repeat history-lines-0:16:24-at-14-in history-lines-0:16:24-at-14-out -4 +repeat history-lines-0:24:26-at-19-in history-lines-0:24:26-at-19-out -1 +repeat history-lines-0:26:27-at-21-in history-lines-0:26:27-at-21-out -1 line 21 reverse vvv [2] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ repeat status-prompt-empty-in status-prompt-empty-out @@ -263,16 +276,345 @@ line 21 reverse vvv [12] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv repeat status-prompt-empty-in status-prompt-empty-out > /window.history.scroll up repeat lines-empty-16-in lines-empty-16-out -repeat history-lines-0:4-at-18-in history-lines-0:4-at-18-out -2 -repeat history-lines-4:5-at-13-in history-lines-4:5-at-13-out +7 +repeat history-lines-0:0:4-at-18-in history-lines-0:0:4-at-18-out -2 +repeat history-lines-0:4:5-at-13-in history-lines-0:4:5-at-13-out +7 line 21 reverse vvv [23] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ repeat status-prompt-empty-in status-prompt-empty-out > /window.history.scroll up -repeat lines-empty-16-in lines-empty-16-out -repeat lines-empty-4-in lines-empty-4-out +16 -repeat history-lines-0:1-at-20-in history-lines-0:1-at-20-out +repeat topmost-scroll-in topmost-scroll-out line 21 reverse vvv [27] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ repeat status-prompt-empty-in status-prompt-empty-out +# check that triggering creation of new window with new lines adds it to status, with unread-lines count +> /connect foo.bar.baz foo bar:baz +log 1 ..$ isupport cleared +log 1 ..$ isupport:CHANTYPES set to: [#&] +log 1 ..$ isupport:PREFIX set to: [(ov)@+] +log 1 ..$ isupport:USERLEN set to: [10] +log 1 ..$ caps cleared +log 1 ..$ users cleared +log 1 ..$ channels cleared +log , ..$ DISCONNECTED +log 1 ..$ hostname set to: [foo.bar.baz] +log 1 ..$ port set to: [-1] +log 1 ..$ nick_wanted set to: [foo] +log 1 ..$ user_wanted set to: [baz] +log 1 ..$ realname set to: [bar] +log 1 ..$ port set to: [6697] +log 1 ..$ connection_state set to: [connecting] +log 1 ..$ connection_state set to: [connected] +log , ..$ CONNECTED +log 1 ..> CAP LS :302 +log 1 ..> USER baz 0 * :bar +log 1 ..> NICK :foo +repeat topmost-scroll-in topmost-scroll-out +line 21 reverse vvv [27] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +line 22 , :start)==========================================================([(0:1)] (1:19)§§ +repeat prompt-empty-in prompt-empty-out + +# check switch to other window, updates to status line (movement of brackets, clearing of own unread-lines count) +> /window 1 +repeat lines-empty-2-in lines-empty-2-out +repeat lines-empty-1-in lines-empty-1-out +2 +| history-lines-1:0:16-at-3-in +| history-lines-1:0:8-at-3-in +repeat history-lines-0:0:1-at-20-in history-lines-0:0:1-at-20-out -17 +line 4 on_black,bright_yellow ..$ §§:§§:§§ isupport cleared +line 5 on_black,bright_yellow ..$ §§:§§:§§ isupport:CHANTYPES set to: [#&] +line 6 on_black,bright_yellow ..$ §§:§§:§§ isupport:PREFIX set to: [(ov)@+] +| history-lines-1:4:8-at-7-in +line 7 on_black,bright_yellow ..$ §§:§§:§§ isupport:USERLEN set to: [10] +| history-lines-1:5:6-at-8-in +line 8 on_black,bright_yellow ..$ §§:§§:§§ caps cleared +| history-lines-1:5:6-at-8-out +| history-lines-1:6:8-at-9-in +line 9 on_black,bright_yellow ..$ §§:§§:§§ users cleared +line 10 on_black,bright_yellow ..$ §§:§§:§§ channels cleared +| history-lines-1:6:8-at-9-out +| history-lines-1:4:8-at-7-out +| history-lines-1:0:8-at-3-out +| history-lines-1:8:16-at-11-in +| history-lines-1:8:12-at-11-in +line 11 on_black,bright_yellow ..$ §§:§§:§§ hostname set to: [foo.bar.baz] +line 12 on_black,bright_yellow ..$ §§:§§:§§ port set to: [-1] +| history-lines-1:10:12-at-13-in +line 13 on_black,bright_yellow ..$ §§:§§:§§ nick_wanted set to: [foo] +line 14 on_black,bright_yellow ..$ §§:§§:§§ user_wanted set to: [baz] +| history-lines-1:10:12-at-13-out +| history-lines-1:8:12-at-11-out +| history-lines-1:12:16-at-15-in +| history-lines-1:12:14-at-15-in +line 15 on_black,bright_yellow ..$ §§:§§:§§ realname set to: [bar] +line 16 on_black,bright_yellow ..$ §§:§§:§§ port set to: [6697] +| history-lines-1:12:14-at-15-out +| history-lines-1:14:15-at-17-in +line 17 on_black,bright_yellow ..$ §§:§§:§§ connection_state set to: [connecting] +| history-lines-1:14:15-at-17-out +line 18 on_black,bright_yellow ..$ §§:§§:§§ connection_state set to: [connected] +| history-lines-1:12:16-at-15-out +| history-lines-1:8:16-at-11-out +| history-lines-1:0:16-at-3-out +| history-lines-1:16:18-at-19-in +line 19 on_black,bright_green ..> §§:§§:§§ CAP LS :302 +line 20 on_black,bright_green ..> §§:§§:§§ USER baz 0 * :bar +| history-lines-1:16:18-at-19-out +| history-lines-1:18:19-at-21-in +line 21 on_black,bright_green ..> §§:§§:§§ NICK :foo +| history-lines-1:18:19-at-21-out +line 22 , foo.bar.baz:debug)====================================================((0:1) [1]§§ +repeat prompt-empty-in prompt-empty-out + +# check switch-back to window 0, retaining clearing of window 1's unread-lines count +> /window 0 +repeat topmost-scroll-in topmost-scroll-out +line 21 reverse vvv [27] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +repeat status-prompt-after-first-return-in status-prompt-after-first-return-out +| status-prompt-after-first-return-in +line 22 , :start)===============================================================([(0:1)] 1§§ +repeat prompt-empty-in prompt-empty-out +| status-prompt-after-first-return-out + +# check that on full scroll-down, we now have a bookmark above the newest lines not previously scrolled into +> /window.history.scroll down +repeat lines-empty-8-in lines-empty-8-out +repeat lines-empty-1-in lines-empty-1-out +8 +repeat history-lines-0:0:8-at-9-in history-lines-0:0:8-at-9-out +repeat history-lines-0:8:12-at-17-in history-lines-0:8:12-at-17-out +line 21 reverse vvv [16] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +repeat status-prompt-after-first-return-in status-prompt-after-first-return-out +> /window.history.scroll down +| before-first-sight-of-bookmark-in +repeat history-lines-0:2:4-at-20-in history-lines-0:2:4-at-20-out -20 +repeat history-lines-0:4:8-at-13-in history-lines-0:4:8-at-13-out -11 +repeat history-lines-0:8:16-at-3-in history-lines-0:8:16-at-3-out +3 +repeat history-lines-0:16:20-at-14-in history-lines-0:16:20-at-14-out +repeat history-lines-0:20:22-at-18-in history-lines-0:20:22-at-18-out +repeat history-lines-0:22:23-at-20-in history-lines-0:22:23-at-20-out +line 21 reverse vvv [5] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +repeat status-prompt-after-first-return-in status-prompt-after-first-return-out +| before-first-sight-of-bookmark-out +> /window.history.scroll down +| first-sight-of-bookmark-in +repeat history-lines-0:8:16-at-3-in history-lines-0:8:16-at-3-out -3 +repeat history-lines-0:16:24-at-14-in history-lines-0:16:24-at-14-out -6 +repeat history-lines-0:24:26-at-19-in history-lines-0:24:26-at-19-out -3 +repeat history-lines-0:26:27-at-21-in history-lines-0:26:27-at-21-out -3 +| bookmark-at-19-in +line 19 on_black --------------------------------------------------------------------------------§§ +| bookmark-at-19-out +| history-lines-0:27:28-at-20-in +line 20 on_black,bold,bright_red,bright_cyan .!# §§:§§:§§ invalid prompt command: /bar_0123456789_0123456789_012345678§§ +| history-lines-0:27:28-at-20-out +| history-lines-0:28:29-at-21-in +line 21 on_black,bold,bright_red,bright_cyan unknown§§ +| history-lines-0:28:29-at-21-out +repeat status-prompt-after-first-return-in status-prompt-after-first-return-out +| first-sight-of-bookmark-out + +# check that scrolling non-bottom bookmark out of sight, then scrolling it back into view again does not by itself move its position in the log history +> /window.history.scroll up +repeat lines-empty-2-in lines-empty-2-out +repeat history-lines-0:0:16-at-6-in history-lines-0:0:16-at-6-out -4 +repeat history-lines-0:16:18-at-14-in history-lines-0:16:18-at-14-out +4 +repeat history-lines-0:18:19-at-16-in history-lines-0:18:19-at-16-out +4 +line 21 reverse vvv [9] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +repeat status-prompt-after-first-return-in status-prompt-after-first-return-out +> /window.history.scroll down +repeat first-sight-of-bookmark-in first-sight-of-bookmark-out + +# check that second switch to new window, previously left on bottom of history, establishes bookmark at bottom of log +> /window 1 +repeat lines-empty-2-in lines-empty-2-out +repeat history-lines-1:0:16-at-3-in history-lines-1:0:16-at-3-out -1 +repeat history-lines-1:16:18-at-19-in history-lines-1:16:18-at-19-out -1 +repeat history-lines-1:18:19-at-21-in history-lines-1:18:19-at-21-out -1 +repeat bookmark-at-19-in bookmark-at-19-out +2 +| status-prompt-both-empty-in +line 22 , foo.bar.baz:debug)========================================================(0 [1]§§ +repeat prompt-empty-in prompt-empty-out +| status-prompt-both-empty-out + +# check second switch-back places bookmark at bottom there too, since the newest lines previously succeeding it have now been read by us +> /window 0 +repeat history-lines-0:8:16-at-3-in history-lines-0:8:16-at-3-out -3 +repeat history-lines-0:16:24-at-14-in history-lines-0:16:24-at-14-out -6 +| history-lines-0:24:28-at-16-in +repeat history-lines-0:24:26-at-19-in history-lines-0:24:26-at-19-out -3 +repeat history-lines-0:26:27-at-21-in history-lines-0:26:27-at-21-out -3 +repeat history-lines-0:27:28-at-20-in history-lines-0:27:28-at-20-out -1 +| history-lines-0:24:28-at-16-out +repeat history-lines-0:28:29-at-21-in history-lines-0:28:29-at-21-out -1 +repeat bookmark-at-19-in bookmark-at-19-out +2 +line 22 , :start)===================================================================([0] 1§§ +repeat prompt-empty-in prompt-empty-out + +# check new lines push bookmark up +> /list +log 0 ..# windows available via /window: +log 0 ..# 0) :start +log 0 ..# 1) foo.bar.baz:debug +| before-first-server-responses-in +repeat history-lines-0:11:12-at-20-in history-lines-0:11:12-at-20-out -20 +repeat history-lines-0:12:16-at-18-in history-lines-0:12:16-at-18-out -17 +repeat history-lines-0:16:24-at-14-in history-lines-0:16:24-at-14-out -9 +repeat history-lines-0:24:28-at-16-in history-lines-0:24:28-at-16-out -3 +repeat history-lines-0:28:29-at-21-in history-lines-0:28:29-at-21-out -4 +repeat bookmark-at-19-in bookmark-at-19-out -1 +| history-lines-0:29:30-at-19-in +line 19 on_black,bright_cyan ..# §§:§§:§§ windows available via /window:§§ +| history-lines-0:29:30-at-19-out +| history-lines-0:30:32-at-20-in +line 20 on_black,bright_cyan ..# §§:§§:§§ 0) :start§§ +line 21 on_black,bright_cyan ..# §§:§§:§§ 1) foo.bar.baz:debug§§ +| history-lines-0:30:32-at-20-out +| before-first-server-responses-out +line 22 , :start)===================================================================([0] 1§§ +repeat prompt-empty-in prompt-empty-out + +# check new lines growing in other window, one of which long enough to wrap, to be re-start count in status (with wrapped only as single) +loggedservermsg 0 1 ..< PING :? +log 1 ..> PONG :? +loggedservermsg 0 1 ..< PING :123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 +log 1 ..> PONG :123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 +repeat before-first-server-responses-in before-first-server-responses-out +line 22 , :start)===============================================================([0] (1:4)§§ +repeat prompt-empty-in prompt-empty-out + +# check that switching to window with new lines, but left scroll-to-bottom, keeps the scroll-to-bottom, keeps bookmark after last line previously seen there +> /window 1 +repeat history-lines-1:4:8-at-7-in history-lines-1:4:8-at-7-out -7 +repeat history-lines-1:8:16-at-11-in history-lines-1:8:16-at-11-out -7 +repeat history-lines-1:16:18-at-19-in history-lines-1:16:18-at-19-out -7 +repeat history-lines-1:18:19-at-21-in history-lines-1:18:19-at-21-out -7 +repeat bookmark-at-19-in bookmark-at-19-out -4 +| history-lines-1:19:20-at-16-in +line 16 on_black,bright_white ..< §§:§§:§§ PING :? +| history-lines-1:19:20-at-16-out +| history-lines-1:20:24-at-17-in +line 17 on_black,bright_green ..> §§:§§:§§ PONG :? +line 18 on_black,bright_white ..< §§:§§:§§ PING :123456789 123456789 123456789 123456789 123456789 123456789§§ +line 19 on_black,bright_white 123456789 123456789§§ +line 20 on_black,bright_green ..> §§:§§:§§ PONG :123456789 123456789 123456789 123456789 123456789 123456789§§ +| history-lines-1:20:24-at-17-out +| history-lines-1:24:25-at-21-in +line 21 on_black,bright_green 123456789 123456789§§ +| history-lines-1:24:25-at-21-out +repeat status-prompt-both-empty-in status-prompt-both-empty-out + +# check that growth below scroll does not by itself re-position bookmark in history +> /window.history.scroll up +loggedservermsg 0 1 ..< PING :foo +log 1 ..> PONG :foo +| early-win1-upscroll-in +repeat lines-empty-4-in lines-empty-4-out +repeat lines-empty-2-in lines-empty-2-out +4 +repeat history-lines-1:0:8-at-3-in history-lines-1:0:8-at-3-out +3 +repeat history-lines-1:8:12-at-11-in history-lines-1:8:12-at-11-out +3 +repeat history-lines-1:12:14-at-15-in history-lines-1:12:14-at-15-out +3 +repeat history-lines-1:14:15-at-17-in history-lines-1:14:15-at-17-out +3 +| early-win1-upscroll-out +line 21 reverse vvv [11] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +repeat status-prompt-both-empty-in status-prompt-both-empty-out +> /window.history.scroll down +repeat history-lines-1:5:6-at-8-in history-lines-1:5:6-at-8-out -8 +repeat history-lines-1:6:8-at-9-in history-lines-1:6:8-at-9-out -8 +repeat history-lines-1:8:16-at-11-in history-lines-1:8:16-at-11-out -8 +repeat history-lines-1:16:18-at-19-in history-lines-1:16:18-at-19-out -8 +repeat history-lines-1:18:19-at-21-in history-lines-1:18:19-at-21-out -8 +repeat bookmark-at-19-in bookmark-at-19-out -5 +repeat history-lines-1:19:20-at-16-in history-lines-1:19:20-at-16-out -1 +repeat history-lines-1:20:24-at-17-in history-lines-1:20:24-at-17-out -1 +repeat history-lines-1:24:25-at-21-in history-lines-1:24:25-at-21-out -1 +line 21 reverse vvv [3] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +repeat status-prompt-both-empty-in status-prompt-both-empty-out + +# check that with new lines left unread, switch away and back into window moves bookmark below newest read line, counts unread lines in status +> /window 0 +| win-0-only-for-win-1-tests-in +repeat history-lines-0:11:12-at-20-in history-lines-0:11:12-at-20-out -20 +repeat history-lines-0:12:16-at-18-in history-lines-0:12:16-at-18-out -17 +repeat history-lines-0:16:24-at-14-in history-lines-0:16:24-at-14-out -9 +repeat history-lines-0:24:28-at-16-in history-lines-0:24:28-at-16-out -3 +repeat history-lines-0:28:29-at-21-in history-lines-0:28:29-at-21-out -4 +repeat history-lines-0:29:30-at-19-in history-lines-0:29:30-at-19-out -1 +repeat history-lines-0:30:32-at-20-in history-lines-0:30:32-at-20-out -1 +repeat bookmark-at-19-in bookmark-at-19-out +2 +| win-0-only-for-win-1-tests-out +line 22 , :start)===============================================================([0] (1:2)§§ +repeat prompt-empty-in prompt-empty-out +> /window 1 +| keep-bookmark-on-outside-growth-test-in +repeat history-lines-1:5:6-at-8-in history-lines-1:5:6-at-8-out -8 +repeat history-lines-1:6:8-at-9-in history-lines-1:6:8-at-9-out -8 +repeat history-lines-1:8:16-at-11-in history-lines-1:8:16-at-11-out -8 +| history-lines-1:16:24-at-11-in +repeat history-lines-1:16:18-at-19-in history-lines-1:16:18-at-19-out -8 +repeat history-lines-1:18:19-at-21-in history-lines-1:18:19-at-21-out -8 +repeat history-lines-1:19:20-at-16-in history-lines-1:19:20-at-16-out -2 +repeat history-lines-1:20:24-at-17-in history-lines-1:20:24-at-17-out -2 +| history-lines-1:16:24-at-11-out +repeat history-lines-1:24:25-at-21-in history-lines-1:24:25-at-21-out -2 +repeat bookmark-at-19-in bookmark-at-19-out +1 +| keep-bookmark-on-outside-growth-test-out +line 21 reverse vvv [3] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +line 22 , foo.bar.baz:debug)====================================================(0 [(1:2)]§§ +repeat prompt-empty-in prompt-empty-out + +# check that growing lines below scroll in other preserves non-bottom bookmark (left in sight on previous window leave) +> /window 0 +loggedservermsg 0 1 ..< PING :bar +log 1 ..> PONG :bar +repeat win-0-only-for-win-1-tests-in win-0-only-for-win-1-tests-out +line 22 , :start)===============================================================([0] (1:4)§§ +repeat prompt-empty-in prompt-empty-out +> /window 1 +repeat keep-bookmark-on-outside-growth-test-in keep-bookmark-on-outside-growth-test-out +line 21 reverse vvv [5] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +| status-prompt-on-win1-4-unread-in +line 22 , foo.bar.baz:debug)====================================================(0 [(1:4)]§§ +repeat prompt-empty-in prompt-empty-out +| status-prompt-on-win1-4-unread-out + +# check same applies when leaving affected window with bookmark out-of-sight +> /window.history.scroll up +repeat early-win1-upscroll-in early-win1-upscroll-out +line 21 reverse vvv [13] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +repeat status-prompt-on-win1-4-unread-in status-prompt-on-win1-4-unread-out +> /window 0 +loggedservermsg 0 1 ..< PING :baz +log 1 ..> PONG :baz +repeat win-0-only-for-win-1-tests-in win-0-only-for-win-1-tests-out +line 22 , :start)===============================================================([0] (1:6)§§ +repeat prompt-empty-in prompt-empty-out +> /window 1 +repeat early-win1-upscroll-in early-win1-upscroll-out +line 21 reverse vvv [15] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +line 22 , foo.bar.baz:debug)====================================================(0 [(1:6)]§§ +repeat prompt-empty-in prompt-empty-out +> /window.history.scroll down +repeat history-lines-1:5:6-at-8-in history-lines-1:5:6-at-8-out -8 +repeat history-lines-1:6:8-at-9-in history-lines-1:6:8-at-9-out -8 +repeat history-lines-1:8:16-at-11-in history-lines-1:8:16-at-11-out -8 +repeat history-lines-1:16:24-at-11-in history-lines-1:16:24-at-11-out +repeat history-lines-1:24:25-at-21-in history-lines-1:24:25-at-21-out -2 +repeat bookmark-at-19-in bookmark-at-19-out +1 +line 21 reverse vvv [7] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§ +line 22 , foo.bar.baz:debug)====================================================(0 [(1:6)]§§ +repeat prompt-empty-in prompt-empty-out +> /window.history.scroll down +repeat history-lines-1:10:12-at-13-in history-lines-1:10:12-at-13-out -13 +repeat history-lines-1:12:16-at-15-in history-lines-1:12:16-at-15-out -13 +repeat history-lines-1:16:24-at-11-in history-lines-1:16:24-at-11-out -5 +repeat history-lines-1:24:25-at-21-in history-lines-1:24:25-at-21-out -7 +repeat bookmark-at-19-in bookmark-at-19-out -4 +line 16 on_black,bright_white ..< §§:§§:§§ PING :foo +line 17 on_black,bright_green ..> §§:§§:§§ PONG :foo +line 18 on_black,bright_white ..< §§:§§:§§ PING :bar +line 19 on_black,bright_green ..> §§:§§:§§ PONG :bar +line 20 on_black,bright_white ..< §§:§§:§§ PING :baz +line 21 on_black,bright_green ..> §§:§§:§§ PONG :baz +line 22 , foo.bar.baz:debug)====================================================(0 [(1:6)]§§ +repeat prompt-empty-in prompt-empty-out + > /quit log 0 ..<