Fix and simplify lldb.command decorator
Summary: This change fixes one issue with `lldb.command`, and also reduces the implementation. The fix: a command function's docstring was not shown when running `help <command_name>`. This is because the docstring attached the source function is not propagated to the decorated function (`f.__call__`). By returning the original function, the docstring will be properly displayed by `help`. Also with this change, the command name is assumed to be the function's name, but can still be explicitly defined as previously. Additionally, the implementation was updated to: * Remove inner class * Remove use of `inspect` module * Remove `*args` and `**kwargs` Reviewers: clayborg Reviewed By: clayborg Subscribers: keith, xiaobai, lldb-commits Differential Revision: https://reviews.llvm.org/D48658 llvm-svn: 336287
This commit is contained in:
@@ -49,6 +49,7 @@ class CmdPythonTestCase(TestBase):
|
||||
self.runCmd('command script delete tell_curr', check=False)
|
||||
self.runCmd('command script delete bug11569', check=False)
|
||||
self.runCmd('command script delete takes_exe_ctx', check=False)
|
||||
self.runCmd('command script delete decorated', check=False)
|
||||
|
||||
# Execute the cleanup function during test case tear down.
|
||||
self.addTearDownHook(cleanup)
|
||||
@@ -67,13 +68,19 @@ class CmdPythonTestCase(TestBase):
|
||||
substrs=['Just a docstring for welcome_impl',
|
||||
'A command that says hello to LLDB users'])
|
||||
|
||||
decorated_commands = ["decorated" + str(n) for n in range(1, 5)]
|
||||
for name in decorated_commands:
|
||||
self.expect(name, substrs=["hello from " + name])
|
||||
self.expect("help " + name,
|
||||
substrs=["Python command defined by @lldb.command"])
|
||||
|
||||
self.expect("help",
|
||||
substrs=['For more information run',
|
||||
'welcome'])
|
||||
'welcome'] + decorated_commands)
|
||||
|
||||
self.expect("help -a",
|
||||
substrs=['For more information run',
|
||||
'welcome'])
|
||||
'welcome'] + decorated_commands)
|
||||
|
||||
self.expect("help -u", matching=False,
|
||||
substrs=['For more information run'])
|
||||
|
||||
Reference in New Issue
Block a user