llvm-project/lldb/test/python_api/input_reader/TestInputReaderCallback.py

47 lines
1.3 KiB
Python

"""Test the SBInputReader callbacks."""
import os
import unittest2
import lldb
from lldbtest import TestBase, python_api_test, dwarf_test
class InputReaderCallbackCase(TestBase):
mydir = os.path.join("python_api", "input_reader")
@python_api_test
@dwarf_test
def test_with_dwarf_and_good_callback(self):
"""Test the SBInputReader callbacks."""
def callback(reader, notification, content):
global succeeded
if (notification == lldb.eInputReaderGotToken):
self.succeeded = True
return len(content)
self.buildDwarf()
self.input_reader_callback(callback)
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
def input_reader_callback(self, callback):
"""Test the SBInputReader callbacks."""
self.succeeded = False
input_reader = lldb.SBInputReader()
input_reader.Initialize(self.dbg, callback, lldb.eInputReaderGranularityByte, "$", "^", False)
self.dbg.PushInputReader(input_reader)
self.dbg.DispatchInput("Hello!$")
self.assertFalse(self.dbg.InputReaderIsTopReader(input_reader))
self.assertTrue(self.succeeded)
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
atexit.register(lambda: lldb.SBDebugger.Terminate())
unittest2.main()