1*99451b44SJordan Rupprecht"""
2*99451b44SJordan RupprechtTest lldb Python commands.
3*99451b44SJordan Rupprecht"""
4*99451b44SJordan Rupprecht
5*99451b44SJordan Rupprecht
6*99451b44SJordan Rupprecht
7*99451b44SJordan Rupprechtimport lldb
8*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
9*99451b44SJordan Rupprecht
10*99451b44SJordan Rupprecht
11*99451b44SJordan Rupprechtclass CommandScriptAliasTestCase(TestBase):
12*99451b44SJordan Rupprecht    NO_DEBUG_INFO_TESTCASE = True
13*99451b44SJordan Rupprecht
14*99451b44SJordan Rupprecht    def test_pycmd(self):
15*99451b44SJordan Rupprecht        self.runCmd("command script import tcsacmd.py")
16*99451b44SJordan Rupprecht        self.runCmd("command script add -f tcsacmd.some_command_here attach")
17*99451b44SJordan Rupprecht
18*99451b44SJordan Rupprecht        # This is the function to remove the custom commands in order to have a
19*99451b44SJordan Rupprecht        # clean slate for the next test case.
20*99451b44SJordan Rupprecht        def cleanup():
21*99451b44SJordan Rupprecht            self.runCmd('command script delete attach', check=False)
22*99451b44SJordan Rupprecht
23*99451b44SJordan Rupprecht        # Execute the cleanup function during test case tear down.
24*99451b44SJordan Rupprecht        self.addTearDownHook(cleanup)
25*99451b44SJordan Rupprecht
26*99451b44SJordan Rupprecht        # We don't want to display the stdout if not in TraceOn() mode.
27*99451b44SJordan Rupprecht        if not self.TraceOn():
28*99451b44SJordan Rupprecht            self.HideStdout()
29*99451b44SJordan Rupprecht
30*99451b44SJordan Rupprecht        self.expect('attach a', substrs=['Victory is mine'])
31*99451b44SJordan Rupprecht        self.runCmd("command script delete attach")
32*99451b44SJordan Rupprecht        # this can't crash but we don't care whether the actual attach works
33*99451b44SJordan Rupprecht        self.runCmd('attach noprocessexistswiththisname', check=False)
34