]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/testsuite/gdb.base/alias.exp
Ensure class_alias is only used for user-defined aliases.
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.base / alias.exp
index 7aacf8925da4324f6935ce8a265fcd8505e2604c..6993d426484a5166370e7c7eb2aa2cce8f1e3e64 100644 (file)
@@ -1,5 +1,5 @@
 # Test the alias command.
-# Copyright 2011-2013 Free Software Foundation, Inc.
+# Copyright 2011-2020 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
@@ -65,4 +65,63 @@ 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 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 --.*"