This is a preparatory patch to add an SB API to get the progress data as SBStructuredData. The advantage of using SBStructuredData is that the dictionary can grow over time with more fields. This approach is identical to the way this is implemented for diagnostic events. Differential revision: https://reviews.llvm.org/D143687
42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
"""
|
|
Test that we are able to broadcast and receive progress events from lldb
|
|
"""
|
|
import lldb
|
|
|
|
import lldbsuite.test.lldbutil as lldbutil
|
|
|
|
from lldbsuite.test.lldbtest import *
|
|
|
|
|
|
class TestProgressReporting(TestBase):
|
|
|
|
def setUp(self):
|
|
TestBase.setUp(self)
|
|
self.broadcaster = self.dbg.GetBroadcaster()
|
|
self.listener = lldbutil.start_listening_from(self.broadcaster,
|
|
lldb.SBDebugger.eBroadcastBitProgress)
|
|
|
|
def test_dwarf_symbol_loading_progress_report(self):
|
|
"""Test that we are able to fetch dwarf symbol loading progress events"""
|
|
self.build()
|
|
|
|
lldbutil.run_to_source_breakpoint(self, 'break here', lldb.SBFileSpec('main.c'))
|
|
|
|
event = lldbutil.fetch_next_event(self, self.listener, self.broadcaster)
|
|
ret_args = lldb.SBDebugger.GetProgressFromEvent(event)
|
|
self.assertGreater(len(ret_args), 0)
|
|
message = ret_args[0]
|
|
self.assertGreater(len(message), 0)
|
|
|
|
def test_dwarf_symbol_loading_progress_report_structured_data(self):
|
|
"""Test that we are able to fetch dwarf symbol loading progress events
|
|
using the structured data API"""
|
|
self.build()
|
|
|
|
lldbutil.run_to_source_breakpoint(self, 'break here', lldb.SBFileSpec('main.c'))
|
|
|
|
event = lldbutil.fetch_next_event(self, self.listener, self.broadcaster)
|
|
progress_data = lldb.SBDebugger.GetProgressDataFromEvent(event)
|
|
message = progress_data.GetValueForKey("message").GetStringValue(100)
|
|
self.assertGreater(len(message), 0)
|