diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/gdb.python/py-cmd.exp | 30 |
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 |