aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/gdb.python/py-cmd.exp30
1 files changed, 30 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-cmd.exp b/gdb/testsuite/gdb.python/py-cmd.exp
index aa95a45..48c3e18 100644
--- a/gdb/testsuite/gdb.python/py-cmd.exp
+++ b/gdb/testsuite/gdb.python/py-cmd.exp
@@ -300,3 +300,33 @@ gdb_test_multiple "test_multiline" $test {
pass $test
}
}
+
+# Test command redefining itself
+
+proc_with_prefix test_command_redefining_itself {} {
+ # Start with a fresh gdb
+ clean_restart
+
+
+ gdb_test_multiline "input command redefining itself" \
+ "python" "" \
+ "class redefine_cmd (gdb.Command):" "" \
+ " def __init__ (self, msg):" "" \
+ " super (redefine_cmd, self).__init__ (\"redefine_cmd\", gdb.COMMAND_OBSCURE)" "" \
+ " self._msg = msg" "" \
+ " def invoke (self, arg, from_tty):" "" \
+ " print (\"redefine_cmd output, msg = %s\" % self._msg)" "" \
+ " redefine_cmd (arg)" "" \
+ "redefine_cmd (\"XXX\")" "" \
+ "end" ""
+
+ gdb_test "redefine_cmd AAA" \
+ "redefine_cmd output, msg = XXX" \
+ "call command redefining itself 1"
+
+ gdb_test "redefine_cmd BBB" \
+ "redefine_cmd output, msg = AAA" \
+ "call command redefining itself 2"
+}
+
+test_command_redefining_itself