| # Copyright 2023-2026 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/>. |
| |
| tuiterm_env |
| |
| Term::clean_restart 24 80 |
| if {![Term::enter_tui]} { |
| unsupported "TUI not supported" |
| return |
| } |
| |
| set status_win { 0 15 80 1 } |
| set command_win { 0 16 80 8 } |
| |
| # Check that the status window doesn't show Singlekey. |
| set re [string_to_regexp "No process (src) In:"] |
| Term::check_region_contents "status window: initial" {*}$status_win $re |
| |
| # Enter single-key mode. Check that the status window does show Singlekey. |
| send_gdb "\030s" |
| set re [string_to_regexp "No process (SingleKey) (src) In:"] |
| gdb_assert { [Term::wait_for_region_contents {*}$status_win $re] } \ |
| "status window: single-key mode" |
| |
| # Send "down command". |
| send_gdb "d" |
| gdb_assert { [Term::wait_for_region_contents {*}$command_win "No stack\\."] } \ |
| "down using single-key d" |
| |
| # Quit single-key mode. |
| send_gdb "q" |
| gdb_assert { [Term::wait_for ""] } "quit using single-key q" |
| |
| # Enter single-key mode, again. |
| send_gdb "\030s" |
| |
| # Send string that doesn't start with a single-key. |
| send_gdb "abc" |
| set re "$gdb_prompt abc" |
| gdb_assert { [Term::wait_for_region_contents {*}$command_win $re] } \ |
| "temporary command prompt" |
| |
| # Enter undefined command abc, and back to single-key mode. |
| send_gdb "\n" |
| |
| # Exit single-key mode, now using C-x s. |
| send_gdb "\030s" |
| gdb_assert { [Term::wait_for ""] } "quit using C-x s" |