================ @@ -0,0 +1,85 @@ +import inspect +import optparse +import shlex +import sys +import time + +import lldb + + +class ProgressTesterCommand: + program = "test-progress" + + @classmethod + def register_lldb_command(cls, debugger, module_name): + parser = cls.create_options() + cls.__doc__ = parser.format_help() + # Add any commands contained in this module to LLDB + command = "command script add -c %s.%s %s" % ( + module_name, + cls.__name__, + cls.program, + ) + debugger.HandleCommand(command) + print( + 'The "{0}" command has been installed, type "help {0}" or "{0} ' + '--help" for detailed help.'.format(cls.program) + ) + + @classmethod + def create_options(cls): + usage = "usage: %prog [options]" + description = "Jacob Lalonde's sbprogress testing tool" + # Opt parse is deprecated, but leaving this the way it is because it allows help formating + # Additionally all our commands use optparse right now, ideally we migrate them all in one go. + parser = optparse.OptionParser( + description=description, prog=cls.program, usage=usage + ) + + parser.add_option( + "--total", dest="total", help="Total to count up.", type="int" + ) + + parser.add_option( + "--seconds", + dest="seconds", + help="Total number of seconds to wait between increments", + type="int", + ) + + return parser + + def get_short_help(self): + return "Progress Tester" + + def get_long_help(self): + return self.help_string + + def __init__(self, debugger, unused): + self.parser = self.create_options() + self.help_string = self.parser.format_help() + + def __call__(self, debugger, command, exe_ctx, result): + command_args = shlex.split(command) + try: + (cmd_options, args) = self.parser.parse_args(command_args) + except: + result.SetError("option parsing failed") + return + + total = cmd_options.total + progress = lldb.SBProgress("Progress tester", "Detail", total, debugger) + + # This actually should start at 1 but it's 6:30 on a Friday... ---------------- JDevlieghere wrote:
? :D https://github.com/llvm/llvm-project/pull/123837 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits