# Copyright 2023-2024 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 . # Regression test for PR30056. # This PR is fixed in the in-repo copy of readline. System readline may or # may not be fixed, so skip this test-case. require !with_system_readline require {have_host_locale C.UTF-8} tuiterm_env save_vars { env(LC_ALL) } { setenv LC_ALL C.UTF-8 # Start terminal. Term::clean_restart 24 80 # Start TUI. if {![Term::enter_tui]} { unsupported "TUI not supported" return } # Send "^R", starting reverse-i-search. send_gdb "\022" Term::wait_for_region_contents 0 $Term::_cur_row $Term::_cols 1 \ [string_to_regexp "(reverse-i-search)`': "] # Send "xyz". send_gdb "xyz" Term::wait_for_region_contents 0 $Term::_cur_row $Term::_cols 1 \ [string_to_regexp "(failed reverse-i-search)`xyz': "] # Send arrow-right. send_gdb "\033\[C" # We need to the arrow-right to be processed by readline, before we # send the following ^C. Waiting 1 ms seems to do that. after 1 # Send ^C. send_gdb "\003" gdb_assert { [Term::wait_for "Quit"] } "Control-C" # Uncomment this to simulate that PR cli/30498 is fixed. #send_gdb "\007" set test "Control-C aborts isearch" # Send "xyz", again. send_gdb "xyz" # Wait for xyx to appear. Term::wait_for_region_contents 0 $Term::_cur_row $Term::_cols 1 "xyz" if { [Term::check_region_contents_p 0 $Term::_cur_row $Term::_cols 1 \ "^$gdb_prompt xyz"] } { pass $test # Send ^C to clear the command line. send_gdb "\003" } else { # Sending ^C currently doesn't abort the i-search. PR cli/30498 is # open about this. kfail cli/30498 $test # At this point we don't have a reponsive prompt. Send ^G to abort # the i-search. send_gdb "\007" } # We need a reponsive prompt here, to deal with the "monitor exit" # that native-extended-gdbserver will send. Check that we have a # responsive prompt. Term::command "echo \\n" }