| # Copyright 2019-2021 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/>. |
| |
| # Test TUI resizing with empty windows. |
| |
| tuiterm_env |
| |
| standard_testfile |
| |
| Term::clean_restart 24 80 |
| |
| if {![Term::enter_tui]} { |
| unsupported "TUI not supported" |
| return |
| } |
| |
| # Each entry describes a layout. It has these items: |
| # 1. Layout name |
| # 2. Test name |
| # 3. List of boxes in 80x24 mode |
| # 4. List of boxes in 90x40 mode |
| # 5. List of test name and text for the empty window |
| set layouts { |
| {src src {{0 0 80 15}} {{0 0 90 26}} |
| {{"no source" "No Source Available"}}} |
| {regs src-regs {{0 0 80 7} {0 6 80 9}} {{0 0 90 13} {0 12 90 13}} |
| { |
| {"no source" "No Source Available"} |
| {"no regs" "Register Values Unavailable"} |
| }} |
| {asm asm {{0 0 80 13}} {{0 0 90 26}} |
| { |
| {"no asm" "No Assembly Available"} |
| }} |
| {regs asm-regs {{0 0 80 7} {0 6 80 9}} {{0 0 90 13} {0 12 90 13}} |
| { |
| {"no asm" "No Assembly Available"} |
| {"no regs" "Register Values Unavailable"} |
| }} |
| {split split {{0 0 80 6} {0 5 80 8}} {{0 0 90 13} {0 12 90 13}} |
| { |
| {"no source" "No Source Available"} |
| {"no asm" "No Assembly Available"} |
| }} |
| {regs split-regs {{0 0 80 6} {0 5 80 8}} {{0 0 90 13} {0 12 90 13}} |
| { |
| {"no asm" "No Assembly Available"} |
| {"no regs" "Register Values Unavailable"} |
| }} |
| } |
| |
| # Helper function to verify a list of boxes. |
| proc check_boxes {boxes} { |
| set boxno 1 |
| foreach box $boxes { |
| eval Term::check_box [list "box $boxno"] $box |
| incr boxno |
| } |
| } |
| |
| # Helper function to verify text. |
| proc check_text {text_list} { |
| set text [Term::get_all_lines] |
| foreach item $text_list { |
| lassign $item testname check |
| if {![gdb_assert {[regexp -- $check $text]} $testname]} { |
| Term::dump_screen |
| } |
| } |
| } |
| |
| foreach layout $layouts { |
| lassign $layout name testname small_boxes large_boxes text_list |
| |
| with_test_prefix $testname { |
| Term::command "layout $name" |
| with_test_prefix 80x24 { |
| check_boxes $small_boxes |
| check_text $text_list |
| } |
| |
| Term::resize 40 90 |
| with_test_prefix 90x40 { |
| check_boxes $large_boxes |
| check_text $text_list |
| } |
| Term::resize 24 80 |
| } |
| } |