Files
binutils-gdb/gdb/testsuite/gdb.base/alias.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

126 lines
4.6 KiB
Plaintext

# Test the alias command.
# Copyright 2011-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/>.
clean_restart
# 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} {
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 --.*"