# Copyright 2019-2022 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 . # 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 8} {0 7 80 8}} {{0 0 90 13} {0 12 90 13}} { {"no source" "No Source Available"} {"no regs" "Register Values Unavailable"} }} {asm asm {{0 0 80 15}} {{0 0 90 26}} { {"no asm" "No Assembly Available"} }} {regs asm-regs {{0 0 80 8} {0 7 80 8}} {{0 0 90 13} {0 12 90 13}} { {"no asm" "No Assembly Available"} {"no regs" "Register Values Unavailable"} }} {split split {{0 0 80 8} {0 7 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 8} {0 7 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 with_test_prefix "80x24 again" { check_boxes $small_boxes check_text $text_list } } }