xref: /llvm-project/lldb/test/API/python_api/default-constructor/sb_debugger.py (revision 2238dcc39358353cac21df75c3c3286ab20b8f53)
1"""
2Fuzz tests an object after the default construction to make sure it does not crash lldb.
3"""
4
5import lldb
6
7
8def fuzz_obj(obj):
9    obj.SetAsync(True)
10    obj.SetAsync(False)
11    obj.GetAsync()
12    obj.SkipLLDBInitFiles(True)
13    obj.SetInputFileHandle(None, True)
14    obj.SetOutputFileHandle(None, True)
15    obj.SetErrorFileHandle(None, True)
16    obj.SetInputString("")
17    obj.GetInputFileHandle()
18    obj.GetOutputFileHandle()
19    obj.GetErrorFileHandle()
20    obj.GetCommandInterpreter()
21    obj.HandleCommand("nothing here")
22    listener = obj.GetListener()
23    try:
24        obj.HandleProcessEvent(lldb.SBProcess(), lldb.SBEvent(), None, None)
25    except Exception:
26        pass
27    obj.CreateTargetWithFileAndTargetTriple("a.out", "A-B-C")
28    obj.CreateTargetWithFileAndArch("b.out", "arm")
29    obj.CreateTarget("c.out")
30    obj.DeleteTarget(lldb.SBTarget())
31    obj.GetTargetAtIndex(0xFFFFFFFF)
32    obj.FindTargetWithProcessID(0)
33    obj.FindTargetWithFileAndArch("a.out", "arm")
34    obj.GetNumTargets()
35    obj.GetSelectedTarget()
36    obj.GetNumPlatforms()
37    obj.GetPlatformAtIndex(0xFFFFFFFF)
38    obj.GetNumAvailablePlatforms()
39    obj.GetAvailablePlatformInfoAtIndex(0xFFFFFFFF)
40    obj.GetSourceManager()
41    obj.SetSelectedTarget(lldb.SBTarget())
42    obj.SetCurrentPlatformSDKRoot("tmp/sdk-root")
43    try:
44        obj.DispatchInput(None)
45    except Exception:
46        pass
47    obj.DispatchInputInterrupt()
48    obj.DispatchInputEndOfFile()
49    obj.GetInstanceName()
50    obj.GetDescription(lldb.SBStream())
51    obj.GetTerminalWidth()
52    obj.SetTerminalWidth(0xFFFFFFFF)
53    obj.GetID()
54    obj.GetPrompt()
55    obj.SetPrompt("Hi, Mom!")
56    obj.GetScriptLanguage()
57    obj.SetScriptLanguage(lldb.eScriptLanguageNone)
58    obj.SetScriptLanguage(lldb.eScriptLanguagePython)
59    obj.GetCloseInputOnEOF()
60    obj.SetCloseInputOnEOF(True)
61    obj.SetCloseInputOnEOF(False)
62    obj.Clear()
63    for target in obj:
64        s = str(target)
65