1*99451b44SJordan Rupprecht"""
2*99451b44SJordan RupprechtTest Debugger APIs.
3*99451b44SJordan Rupprecht"""
4*99451b44SJordan Rupprecht
5*99451b44SJordan Rupprechtimport lldb
6*99451b44SJordan Rupprecht
7*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
8*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
9*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
10*99451b44SJordan Rupprecht
11*99451b44SJordan Rupprecht
12*99451b44SJordan Rupprechtclass DebuggerAPITestCase(TestBase):
13*99451b44SJordan Rupprecht
14*99451b44SJordan Rupprecht    mydir = TestBase.compute_mydir(__file__)
15*99451b44SJordan Rupprecht    NO_DEBUG_INFO_TESTCASE = True
16*99451b44SJordan Rupprecht
17*99451b44SJordan Rupprecht    @add_test_categories(['pyapi'])
18*99451b44SJordan Rupprecht    def test_debugger_api_boundary_condition(self):
19*99451b44SJordan Rupprecht        """Exercise SBDebugger APIs with boundary conditions."""
20*99451b44SJordan Rupprecht        self.dbg.HandleCommand(None)
21*99451b44SJordan Rupprecht        self.dbg.SetDefaultArchitecture(None)
22*99451b44SJordan Rupprecht        self.dbg.GetScriptingLanguage(None)
23*99451b44SJordan Rupprecht        self.dbg.CreateTarget(None)
24*99451b44SJordan Rupprecht        self.dbg.CreateTarget(None, None, None, True, lldb.SBError())
25*99451b44SJordan Rupprecht        self.dbg.CreateTargetWithFileAndTargetTriple(None, None)
26*99451b44SJordan Rupprecht        self.dbg.CreateTargetWithFileAndArch(None, None)
27*99451b44SJordan Rupprecht        self.dbg.FindTargetWithFileAndArch(None, None)
28*99451b44SJordan Rupprecht        self.dbg.SetInternalVariable(None, None, None)
29*99451b44SJordan Rupprecht        self.dbg.GetInternalVariableValue(None, None)
30*99451b44SJordan Rupprecht        # FIXME (filcab): We must first allow for the swig bindings to know if
31*99451b44SJordan Rupprecht        # a Python callback is set. (Check python-typemaps.swig)
32*99451b44SJordan Rupprecht        # self.dbg.SetLoggingCallback(None)
33*99451b44SJordan Rupprecht        self.dbg.SetPrompt(None)
34*99451b44SJordan Rupprecht        self.dbg.SetCurrentPlatform(None)
35*99451b44SJordan Rupprecht        self.dbg.SetCurrentPlatformSDKRoot(None)
36*99451b44SJordan Rupprecht
37*99451b44SJordan Rupprecht        fresh_dbg = lldb.SBDebugger()
38*99451b44SJordan Rupprecht        self.assertEquals(len(fresh_dbg), 0)
39*99451b44SJordan Rupprecht
40*99451b44SJordan Rupprecht    @add_test_categories(['pyapi'])
41*99451b44SJordan Rupprecht    def test_debugger_delete_invalid_target(self):
42*99451b44SJordan Rupprecht        """SBDebugger.DeleteTarget() should not crash LLDB given and invalid target."""
43*99451b44SJordan Rupprecht        target = lldb.SBTarget()
44*99451b44SJordan Rupprecht        self.assertFalse(target.IsValid())
45*99451b44SJordan Rupprecht        self.dbg.DeleteTarget(target)
46