mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-13 11:58:51 +08:00

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>
71 lines
2.3 KiB
Plaintext
71 lines
2.3 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/>.
|
|
|
|
# Test GDB's 'set print characters' setting works for Ada strings.
|
|
|
|
load_lib "ada.exp"
|
|
|
|
require allow_ada_tests
|
|
|
|
standard_ada_testfile foo
|
|
|
|
if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
|
|
return -1
|
|
}
|
|
|
|
clean_restart ${testfile}
|
|
|
|
set bp_location [gdb_get_line_number "STOP" ${testdir}/foo.adb]
|
|
if ![runto "foo.adb:$bp_location" ] then {
|
|
return -1
|
|
}
|
|
|
|
gdb_test "print Arg" \
|
|
" = \"abcdefghijklmnopqrstuvwxyz\"" \
|
|
"print with default settings"
|
|
|
|
gdb_test_no_output "set print characters 26"
|
|
gdb_test "print Arg" \
|
|
" = \"abcdefghijklmnopqrstuvwxyz\"" \
|
|
"print with character limit of 26"
|
|
|
|
gdb_test "print -characters 11 -- Arg" \
|
|
" = \"abcdefghijk\"\\.\\.\\." \
|
|
"print with character limit of 11"
|
|
|
|
gdb_test_no_output "set print characters 10"
|
|
gdb_test "print Arg" \
|
|
" = \"abcdefghij\"\\.\\.\\." \
|
|
"print with character limit of 10"
|
|
|
|
gdb_test_no_output "set print characters unlimited"
|
|
gdb_test "print Arg" \
|
|
" = \"abcdefghijklmnopqrstuvwxyz\"" \
|
|
"print with unlimited character limit"
|
|
|
|
# The 'set print elements' command used to control printing of characters
|
|
# in a string, before we created 'set print characters'. This test makes
|
|
# sure that 'set print elements' doens't effect string printing any more.
|
|
gdb_test_no_output "set print elements 12"
|
|
gdb_test "print Arg" \
|
|
" = \"abcdefghijklmnopqrstuvwxyz\"" \
|
|
"print with unlimited character limit, but lower element limit"
|
|
|
|
# Except when 'set print characters elements' has been used.
|
|
gdb_test_no_output "set print characters elements"
|
|
gdb_test "print Arg" \
|
|
" = \"abcdefghijkl\"\\.\\.\\." \
|
|
"print with character limit of elements"
|