Files
binutils-gdb/gdb/testsuite/gdb.base/eof-exit.exp
Andrew Burgess 1d506c26d9 Update copyright year range in header of all files managed by GDB
This commit is the result of the following actions:

  - Running gdb/copyright.py to update all of the copyright headers to
    include 2024,

  - Manually updating a few files the copyright.py script told me to
    update, these files had copyright headers embedded within the
    file,

  - Regenerating gdbsupport/Makefile.in to refresh it's copyright
    date,

  - Using grep to find other files that still mentioned 2023.  If
    these files were updated last year from 2022 to 2023 then I've
    updated them this year to 2024.

I'm sure I've probably missed some dates.  Feel free to fix them up as
you spot them.
2024-01-12 15:49:57 +00:00

107 lines
3.6 KiB
Plaintext

# Copyright (C) 2022-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 <http://www.gnu.org/licenses/>.
# This test script checks how GDB handles exiting with ctrl-d.
# Start GDB, and then close it by sendig ctrl-d. Check that the
# string 'quit' appears where we expect it too.
proc run_test {} {
clean_restart
# The gdb_start call above swallows the GDB prompt, and we want
# the prompt for the test below.
#
# Send a newline character, which will cause GDB to redisplay the
# prompt.
#
# We then consume the newline characters, and then make use of
# expect's -notransfer option to ensure that the prompt has been
# displayed, but to leave the prompt in expect's internal buffer.
# This is important as the following test wants to check how GDB
# displays the 'quit' message relative to the prompt, this is much
# easier to do if the prompt is still in expect's buffers.
#
# The other special thing we do here is avoid printing a 'PASS'
# result. The reason for this is so that the GDB output in the
# log file will match what a user should see, this makes it much
# easier to debug issues. Obviously we could print a 'PASS' here
# as the text printed by expect is not considered part of GDB's
# output, so the pattern matching will work just fine... but, the
# log file becomes much harder to read.
send_gdb "\n"
gdb_test_multiple "" "discard newline" {
-re "^\r\n" {
exp_continue
}
-notransfer -re "^\[^\n\]*$::gdb_prompt $" {
}
}
# Send GDB a ctrl-d. Check that we see the 'quit' string in the
# expected place.
send_gdb "\004"
gdb_test_multiple "" "close GDB with eof" {
-re "$::gdb_prompt \[^\n\]*\r\[^\n\]*quit" {
fail "$gdb_test_name (misplaced \\r)"
}
-re "$::gdb_prompt (?:\[^\n\]*\r)?\[^\n\]*\r\nquit\r\n" {
# For versions of readline that don't include the
# RL_STATE_EOF patch, then the 'quit' is printed on the
# subsequent line.
kfail gdb/28833 "$gdb_test_name (older version of readline)"
}
-re "$::gdb_prompt quit\[^\n\]*\r\n\[^\n\]*\r\n$" {
# There was a bug where GDB would print an extra blank
# line after the 'quit', this catches that case.
fail $gdb_test_name
}
-re "$::gdb_prompt \[^\n\r\]*quit\[^\n\]*\r\n\[^\n\]*$" {
pass $gdb_test_name
}
eof {
fail "$gdb_test_name (missed the prompt)"
}
}
}
with_test_prefix "default" {
run_test
}
save_vars { env(TERM) } {
setenv TERM ansi
with_test_prefix "with non-dump terminal" {
run_test
save_vars { env(INPUTRC) } {
# Create an inputrc file that turns bracketed paste mode
# on. This is usually turned off (see lib/gdb.exp), but
# for the next test we want to see what happens with this
# on.
set inputrc [standard_output_file inputrc]
set fd [open "$inputrc" w]
puts $fd "set enable-bracketed-paste on"
close $fd
setenv INPUTRC "$inputrc"
with_test_prefix "with bracketed-paste-mode on" {
run_test
}
}
}
}