blob: 52aa7ac1d5cbda32ea135ba54b6d20c16e8b8952 [file] [log] [blame]
# Copyright 2017-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/>.
# Regression test for PR tui/21216 - TUI line breaks regression.
#
# Tests that newlines in filtered output force a "carriage return" in
# the TUI command window. With a broken gdb, instead of:
#
# (gdb) printf "hello\nworld\n"
# hello
# world
# (gdb)
#
# we'd get:
#
# (gdb) printf "hello\nworld\n"hello
# world
#
# (gdb)
require allow_tui_tests
tuiterm_env
# Setup and enter TUI mode.
Term::clean_restart 24 80
if {![Term::enter_tui]} {
unsupported "TUI not supported"
return
}
# Send the command, and check the output is correctly split over
# multiple lines.
Term::command \
{printf "hello\nworld\n"}
Term::check_region_contents "check printf output" \
0 16 80 4 [multi_line \
"$gdb_prompt printf \"hello\\\\nworld\\\\n\"\\s+" \
"hello\\s+" \
"world\\s+" \
"$gdb_prompt\\s+"]