1*a37672e2SJim Ingham""" Test command for checking the Python commands can run in a stop-hook """
2*a37672e2SJim Inghamimport lldb
3*a37672e2SJim Ingham
4*a37672e2SJim Inghamdid_run = False
5*a37672e2SJim Ingham
6*a37672e2SJim Inghamclass SomeCommand:
7*a37672e2SJim Ingham    def __init__(self, debugger, unused):
8*a37672e2SJim Ingham        self.dbg = debugger
9*a37672e2SJim Ingham    def __call__(self, debugger, command, exe_ctx, result):
10*a37672e2SJim Ingham        global did_run
11*a37672e2SJim Ingham        did_run = True
12*a37672e2SJim Ingham        result.PutCString("some output\n")
13*a37672e2SJim Ingham
14*a37672e2SJim Ingham    def get_short_help(self):
15*a37672e2SJim Ingham        return "Test command - sets a variable."
16*a37672e2SJim Ingham
17*a37672e2SJim Inghamclass OtherCommand:
18*a37672e2SJim Ingham    def __init__(self, debugger, unused):
19*a37672e2SJim Ingham        self.dbg = debugger
20*a37672e2SJim Ingham    def __call__(self, debugger, command, exe_ctx, result):
21*a37672e2SJim Ingham        global did_run
22*a37672e2SJim Ingham        if did_run:
23*a37672e2SJim Ingham            result.SetStatus(lldb.eReturnStatusSuccessFinishNoResult)
24*a37672e2SJim Ingham        else:
25*a37672e2SJim Ingham            result.SetStatus(lldb.eReturnStatusFailed)
26*a37672e2SJim Ingham
27*a37672e2SJim Ingham    def get_short_help(self):
28*a37672e2SJim Ingham        return "Test command - sets a variable."
29*a37672e2SJim Ingham
30*a37672e2SJim Inghamdef __lldb_init_module(debugger, unused):
31*a37672e2SJim Ingham    print("Adding command some-cmd and report-cmd")
32*a37672e2SJim Ingham    debugger.HandleCommand("command script add -c some_cmd.SomeCommand some-cmd")
33*a37672e2SJim Ingham    debugger.HandleCommand("command script add -c some_cmd.OtherCommand report-cmd")
34