# Copyright 2015-2023 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 . require allow_tui_tests tuiterm_env clean_restart require {!target_info exists gdb,nointerrupts} gdb_test_no_output "set max-completions unlimited" # TAB-complete INPUT_LINE, and expect EXPECTED_RE as completion match # output. proc test_tab_completion {input_line expected_re} { global gdb_prompt set test "tab completion" send_gdb "$input_line\t\t\t" gdb_test_multiple "" "$test" { -re "$expected_re\r\n$gdb_prompt " { gdb_test_multiple "" "$test" { -re "^$input_line $" { pass "$test" } } } } send_gdb "\003" set test "quit command input" gdb_test_multiple "" "$test" { -re "$gdb_prompt $" { pass "$test" } } } if { [readline_is_used] } { with_test_prefix "completion of layout names" { test_tab_completion "layout" "asm *next *prev *regs *split *src *" } with_test_prefix "completion of focus command" { test_tab_completion "focus" "cmd *next *prev *src *" } } # Now run some completion tests when TUI mode is enabled. Term::clean_restart 24 80 if {![Term::prepare_for_tui]} { unsupported "TUI not supported" return } Term::command "layout src" Term::command "complete focus " Term::dump_screen Term::check_region_contents "check focus completions" 0 17 80 5 \ "focus cmd\\s*focus next\\s*focus prev\\s*focus src\\s*$gdb_prompt"