| """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() |