1e3b9bb5aSMed Ismail Bennani""" 2e3b9bb5aSMed Ismail BennaniTest that we are able to broadcast and receive progress events from lldb 3e3b9bb5aSMed Ismail Bennani""" 4e3b9bb5aSMed Ismail Bennaniimport lldb 59216baf8SMed Ismail Bennani 68bf89346SPavel Labathimport lldbsuite.test.lldbutil as lldbutil 79216baf8SMed Ismail Bennani 89216baf8SMed Ismail Bennanifrom lldbsuite.test.lldbtest import * 99216baf8SMed Ismail Bennani 1009ff41a0SMed Ismail Bennani 118bf89346SPavel Labathclass TestProgressReporting(TestBase): 128bf89346SPavel Labath def setUp(self): 138bf89346SPavel Labath TestBase.setUp(self) 149216baf8SMed Ismail Bennani self.broadcaster = self.dbg.GetBroadcaster() 152238dcc3SJonas Devlieghere self.listener = lldbutil.start_listening_from( 16*a4c21d17SChelsea Cassanova self.broadcaster, lldb.SBDebugger.eBroadcastBitProgress 172238dcc3SJonas Devlieghere ) 18e3b9bb5aSMed Ismail Bennani 19e3b9bb5aSMed Ismail Bennani def test_dwarf_symbol_loading_progress_report(self): 20e3b9bb5aSMed Ismail Bennani """Test that we are able to fetch dwarf symbol loading progress events""" 21e3b9bb5aSMed Ismail Bennani self.build() 22e3b9bb5aSMed Ismail Bennani 232238dcc3SJonas Devlieghere lldbutil.run_to_source_breakpoint(self, "break here", lldb.SBFileSpec("main.c")) 248bf89346SPavel Labath 259216baf8SMed Ismail Bennani event = lldbutil.fetch_next_event(self, self.listener, self.broadcaster) 269216baf8SMed Ismail Bennani ret_args = lldb.SBDebugger.GetProgressFromEvent(event) 279216baf8SMed Ismail Bennani self.assertGreater(len(ret_args), 0) 289216baf8SMed Ismail Bennani message = ret_args[0] 299216baf8SMed Ismail Bennani self.assertGreater(len(message), 0) 308bf89346SPavel Labath 310ac8dfd0SJonas Devlieghere def test_dwarf_symbol_loading_progress_report_structured_data(self): 320ac8dfd0SJonas Devlieghere """Test that we are able to fetch dwarf symbol loading progress events 330ac8dfd0SJonas Devlieghere using the structured data API""" 340ac8dfd0SJonas Devlieghere self.build() 350ac8dfd0SJonas Devlieghere 362238dcc3SJonas Devlieghere lldbutil.run_to_source_breakpoint(self, "break here", lldb.SBFileSpec("main.c")) 370ac8dfd0SJonas Devlieghere 380ac8dfd0SJonas Devlieghere event = lldbutil.fetch_next_event(self, self.listener, self.broadcaster) 390ac8dfd0SJonas Devlieghere progress_data = lldb.SBDebugger.GetProgressDataFromEvent(event) 400ac8dfd0SJonas Devlieghere message = progress_data.GetValueForKey("message").GetStringValue(100) 410ac8dfd0SJonas Devlieghere self.assertGreater(len(message), 0) 42f1ef910bSChelsea Cassanova details = progress_data.GetValueForKey("details").GetStringValue(100) 43f1ef910bSChelsea Cassanova self.assertGreater(len(details), 0) 44