binutils-gdb/gdb/testsuite/gdb.pascal/str-chars.exp
Andrew Burgess 77519ab324 GDB/testsuite: Expand for character string limiting options
Modify test cases that verify the operation of the array element limit
with character strings such that they are executed twice, once with the
`set print characters' option set to `elements' and the limit controlled
with the `set print elements' option, and then again with the limit
controlled with the `set print characters' option instead.  Similarly
with the `-elements' and `-characters' options for the `print' command.
Additionally verify that said `print' command options combined yield the
expected result.

Verify correct $_gdb_setting and $_gdb_setting_str values for the `print
characters' setting, in particular the `void' value for the `elements'
default, which has no corresponding integer value exposed.

Add Guile and Python coverage for the `print characters' GDB setting.

There are new tests for Ada and Pascal, as the string printing code for
these languages is different than the generic string printing code used
by other languages.  Modula2 also has different string printing code,
but (a) this is similar to Pascal, and (b) there are no existing modula2
tests written in Modula2, so I'm not sure how I'd even test the Modula2
string printing.

Co-Authored-By: Maciej W. Rozycki <macro@embecosm.com>
Approved-By: Simon Marchi <simon.marchi@efficios.com>
2023-01-19 21:15:56 +00:00

56 lines
1.9 KiB
Plaintext

# Copyright 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 <http://www.gnu.org/licenses/>.
load_lib "pascal.exp"
standard_testfile .pas
if {[gdb_compile_pascal "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug ]] != "" } {
return -1
}
clean_restart ${testfile}
if { ![runto_main] } {
return
}
gdb_breakpoint ${srcfile}:[gdb_get_line_number "set breakpoint 1 here"]
gdb_continue_to_breakpoint "continue to breakpoint"
gdb_test "print message" " = 'abcdefghijklmnopqrstuvwxyz'" \
"print message with the default settings"
gdb_test_no_output "set print elements 10"
gdb_test "print message" " = 'abcdefghij'\\.\\.\\." \
"print message with 'print elements' set to 10"
gdb_test_no_output "set print characters 20"
gdb_test "print message" " = 'abcdefghijklmnopqrst'\\.\\.\\." \
"print message with 'print characters' set to 20"
gdb_test_no_output "set print elements 15"
gdb_test "print message" " = 'abcdefghijklmnopqrst'\\.\\.\\." \
"print message with 'print elements' set to 15"
gdb_test_no_output "set print characters unlimited"
gdb_test "print message" " = 'abcdefghijklmnopqrstuvwxyz'" \
"print message with 'print characters' set to unlimited"
gdb_test_no_output "set print characters elements"
gdb_test "print message" " = 'abcdefghijklmno'\\.\\.\\." \
"print message with 'print characters' set to elements"