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
5*9216baf8SMed Ismail Bennani
68bf89346SPavel Labathimport lldbsuite.test.lldbutil as lldbutil
7*9216baf8SMed Ismail Bennani
8*9216baf8SMed Ismail Bennanifrom lldbsuite.test.lldbtest import *
9*9216baf8SMed Ismail Bennani
1009ff41a0SMed Ismail Bennani
118bf89346SPavel Labathclass TestProgressReporting(TestBase):
12e3b9bb5aSMed Ismail Bennani
138bf89346SPavel Labath    def setUp(self):
148bf89346SPavel Labath        TestBase.setUp(self)
15*9216baf8SMed Ismail Bennani        self.broadcaster = self.dbg.GetBroadcaster()
16*9216baf8SMed Ismail Bennani        self.listener = lldbutil.start_listening_from(self.broadcaster,
17*9216baf8SMed Ismail Bennani                                        lldb.SBDebugger.eBroadcastBitProgress)
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
23e3b9bb5aSMed Ismail Bennani        lldbutil.run_to_source_breakpoint(self, 'break here', lldb.SBFileSpec('main.c'))
248bf89346SPavel Labath
25*9216baf8SMed Ismail Bennani        event = lldbutil.fetch_next_event(self, self.listener, self.broadcaster)
26*9216baf8SMed Ismail Bennani        ret_args = lldb.SBDebugger.GetProgressFromEvent(event)
27*9216baf8SMed Ismail Bennani        self.assertGreater(len(ret_args), 0)
28*9216baf8SMed Ismail Bennani        message = ret_args[0]
29*9216baf8SMed Ismail Bennani        self.assertGreater(len(message), 0)
308bf89346SPavel Labath
31