1"""
2Fuzz tests an object after the default construction to make sure it does not crash lldb.
3"""
4
5import sys
6import lldb
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.GetInputFileHandle()
17    obj.GetOutputFileHandle()
18    obj.GetErrorFileHandle()
19    obj.GetCommandInterpreter()
20    obj.HandleCommand("nothing here")
21    listener = obj.GetListener()
22    obj.HandleProcessEvent(lldb.SBProcess(), lldb.SBEvent(), None, None)
23    obj.CreateTargetWithFileAndTargetTriple("a.out", "A-B-C")
24    obj.CreateTargetWithFileAndArch("b.out", "arm")
25    obj.CreateTarget("c.out")
26    obj.DeleteTarget(lldb.SBTarget())
27    obj.GetTargetAtIndex(0xffffffff)
28    obj.FindTargetWithProcessID(0)
29    obj.FindTargetWithFileAndArch("a.out", "arm")
30    obj.GetNumTargets()
31    obj.GetSelectedTarget()
32    obj.GetSourceManager()
33    obj.SetSelectedTarget(lldb.SBTarget())
34    obj.SetCurrentPlatformSDKRoot("tmp/sdk-root")
35    try:
36        obj.DispatchInput(None)
37    except Exception:
38        pass
39    obj.DispatchInputInterrupt()
40    obj.DispatchInputEndOfFile()
41    obj.PushInputReader(lldb.SBInputReader())
42    obj.NotifyTopInputReader(lldb.eInputReaderActivate)
43    obj.InputReaderIsTopReader(lldb.SBInputReader())
44    obj.GetInstanceName()
45    obj.GetDescription(lldb.SBStream())
46    obj.GetTerminalWidth()
47    obj.SetTerminalWidth(0xffffffff)
48    obj.GetID()
49    obj.GetPrompt()
50    obj.SetPrompt("Hi, Mom!")
51    obj.GetScriptLanguage()
52    obj.SetScriptLanguage(lldb.eScriptLanguageNone)
53    obj.SetScriptLanguage(lldb.eScriptLanguagePython)
54    obj.GetCloseInputOnEOF()
55    obj.SetCloseInputOnEOF(True)
56    obj.SetCloseInputOnEOF(False)
57    obj.Clear()
58    for target in obj:
59        print target
60