mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-24 12:35:55 +08:00
4a94e36819
This commit brings all the changes made by running gdb/copyright.py as per GDB's Start of New Year Procedure. For the avoidance of doubt, all changes in this commits were performed by the script.
128 lines
4.7 KiB
Plaintext
128 lines
4.7 KiB
Plaintext
# Test the alias command.
|
|
# Copyright 2011-2022 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/>.
|
|
|
|
gdb_exit
|
|
gdb_start
|
|
gdb_reinitialize_dir $srcdir/$subdir
|
|
|
|
# Helper to test the -a option to alias.
|
|
# Aliases that are abbreviations of commands (e.g. r -> run)
|
|
# do not appear in help output.
|
|
|
|
proc test_abbrev_not_present { alias_name } {
|
|
global gdb_prompt
|
|
set alias_present 0
|
|
set test_name "abbrev $alias_name not present in help command list"
|
|
gdb_test_multiple "help aliases" $test_name {
|
|
-re "\[\r\n\]$alias_name \[^\r\n\]*" {
|
|
set alias_present 1
|
|
exp_continue
|
|
}
|
|
-re ".*$gdb_prompt $" {
|
|
if { !$alias_present } then {
|
|
pass $test_name
|
|
} else {
|
|
fail $test_name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
proc test_abbrev_alias { name gdb_command test_value } {
|
|
gdb_test_no_output $gdb_command
|
|
gdb_test_no_output "$name print elements $test_value"
|
|
gdb_test "show print elements" "Limit .* is $test_value\[.\]" "verify $name"
|
|
test_abbrev_not_present $name
|
|
}
|
|
|
|
test_abbrev_alias set2 "alias -a set2=set" 42
|
|
test_abbrev_alias set3 "alias -a set3= set" 43
|
|
test_abbrev_alias set4 "alias -a set4 =set" 44
|
|
test_abbrev_alias set5 "alias -a set5 = set" 45
|
|
test_abbrev_alias set6 "alias -a -- set6 = set" 46
|
|
test_abbrev_alias -a "alias -a -- -a = set" 47
|
|
|
|
gdb_test "alias set2=set" "already exists: set2"
|
|
gdb_test "alias foo=bar" "Undefined command: \"bar\". Try \"help\"."
|
|
|
|
gdb_test_no_output "alias spe = set p elem"
|
|
gdb_test_no_output "spe 50"
|
|
gdb_test "show print elements" "Limit .* is 50\[.\]" "verify spe"
|
|
|
|
gdb_test_no_output "alias set pr elms = set p elem"
|
|
gdb_test_no_output "set pr elms 51"
|
|
gdb_test "show print elements" "Limit .* is 51\[.\]" "verify set pr elms"
|
|
gdb_test "help set print" "set print elements, set print elms, spe .*"
|
|
|
|
# Verify alias command detects a non existing prefix.
|
|
gdb_test "alias assigne imprime limite-elements = set print elements" \
|
|
"ALIAS and COMMAND prefixes do not match\." \
|
|
"assigne imprime prefix not defined"
|
|
|
|
gdb_test "alias set imprime limite-elements = set print elements" \
|
|
"ALIAS and COMMAND prefixes do not match\." \
|
|
"set imprime prefix not defined"
|
|
|
|
# Verify alias command detects a non matching prefix.
|
|
gdb_test "alias set ada limite-elements = set print elements" \
|
|
"ALIAS and COMMAND prefixes do not match\." \
|
|
"mismatched prefix"
|
|
|
|
# Verify alias command detects a non matching prefix due to length.
|
|
gdb_test "alias set imprime-limite-elements = set print elements" \
|
|
"Mismatched command length between ALIAS and COMMAND\." \
|
|
"mismatched length"
|
|
|
|
|
|
# Gradually define the prefixes and the limite-elements command.
|
|
gdb_test_no_output "alias assigne = set" "alias assigne"
|
|
gdb_test_no_output "alias assigne imprime = set print" "alias assigne imprime"
|
|
gdb_test_no_output "alias assigne imprime limite-elements = set print elements" \
|
|
"alias assigne imprime limite-elements"
|
|
|
|
# Define an alias using the command prefix with a command using an alias prefix.
|
|
gdb_test_no_output "alias set print max-elements = assigne imprime elements" \
|
|
"alias set print max-elements using assigne imprime"
|
|
|
|
|
|
# Tests the resulting prefixes and commands.
|
|
gdb_test_no_output "assigne print elements 52"
|
|
gdb_test "show print elements" "Limit .* is 52\[.\]" "verify 52"
|
|
|
|
gdb_test_no_output "assigne imprime elements 53"
|
|
gdb_test "show print elements" "Limit .* is 53\[.\]" "verify 53"
|
|
|
|
gdb_test_no_output "assigne imprime limite-elements 54"
|
|
gdb_test "show print elements" "Limit .* is 54\[.\]" "verify 54"
|
|
|
|
gdb_test_no_output "set imprime elements 55"
|
|
gdb_test "show print elements" "Limit .* is 55\[.\]" "verify 55"
|
|
|
|
gdb_test_no_output "set print limite-elements 56"
|
|
gdb_test "show print elements" "Limit .* is 56\[.\]" "verify 56"
|
|
|
|
gdb_test_no_output "set print max-elements 57"
|
|
gdb_test "show print elements" "Limit .* is 57\[.\]" "verify 57"
|
|
|
|
# Test aliases having a common prefix.
|
|
gdb_test_no_output "alias abcd = backtrace"
|
|
gdb_test_no_output "alias abcde = backtrace"
|
|
gdb_test_no_output "alias fghij = backtrace"
|
|
gdb_test_no_output "alias fghi = backtrace"
|
|
|
|
# Verify help aliases shows the user defined aliases
|
|
gdb_test "help aliases" ".*abcd --.*.*abcde --.*"
|