Skip to content

Commit 4729a72

Browse files
committed
Revert "[lldb/test] Fix TestProgressReporting.py race issue with the event listener"
This reverts commit 3e3e79a. MemorySanitizer: use-of-uninitialized-value
1 parent 4ae1855 commit 4729a72

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

lldb/bindings/interface/SBDebugger.i

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,11 +123,14 @@ public:
123123
};
124124

125125

126+
%apply uint64_t& INOUT { uint64_t& progress_id };
127+
%apply uint64_t& INOUT { uint64_t& completed };
128+
%apply uint64_t& INOUT { uint64_t& total };
129+
%apply bool& INOUT { bool& is_debugger_specific };
126130
static const char *GetProgressFromEvent(const lldb::SBEvent &event,
127-
uint64_t &OUTPUT,
128-
uint64_t &OUTPUT,
129-
uint64_t &OUTPUT,
130-
bool &OUTPUT);
131+
uint64_t &progress_id,
132+
uint64_t &completed, uint64_t &total,
133+
bool &is_debugger_specific);
131134

132135
SBBroadcaster GetBroadcaster();
133136

lldb/test/API/functionalities/progress_reporting/TestProgressReporting.py

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,42 +17,41 @@ def setUp(self):
1717
TestBase.setUp(self)
1818
self.progress_events = []
1919

20-
def fetch_events(self):
20+
def fetch_events(self, test_broadcaster):
21+
listener = lldb.SBListener("lldb.progress.listener")
22+
listener.StartListeningForEvents(test_broadcaster,
23+
self.eBroadcastBitStopProgressThread)
24+
25+
progress_broadcaster = self.dbg.GetBroadcaster()
26+
progress_broadcaster.AddListener(listener, lldb.SBDebugger.eBroadcastBitProgress)
27+
2128
event = lldb.SBEvent()
2229

2330
done = False
2431
while not done:
25-
if self.listener.WaitForEvent(1, event):
32+
if listener.WaitForEvent(1, event):
2633
event_mask = event.GetType();
27-
if event.BroadcasterMatchesRef(self.test_broadcaster):
34+
if event.BroadcasterMatchesRef(test_broadcaster):
2835
if event_mask & self.eBroadcastBitStopProgressThread:
2936
done = True;
30-
elif event.BroadcasterMatchesRef(self.progress_broadcaster):
31-
ret_args = lldb.SBDebugger().GetProgressFromEvent(event);
32-
self.assertGreater(len(ret_args), 1)
33-
34-
message = ret_args[0]
37+
elif event.BroadcasterMatchesRef(progress_broadcaster):
38+
message = lldb.SBDebugger().GetProgressFromEvent(event, 0, 0, 0, False);
3539
if message:
3640
self.progress_events.append((message, event))
3741

42+
@skipUnlessDarwin
3843
def test_dwarf_symbol_loading_progress_report(self):
3944
"""Test that we are able to fetch dwarf symbol loading progress events"""
4045
self.build()
4146

42-
self.listener = lldb.SBListener("lldb.progress.listener")
43-
self.test_broadcaster = lldb.SBBroadcaster('lldb.broadcaster.test')
44-
self.listener.StartListeningForEvents(self.test_broadcaster,
45-
self.eBroadcastBitStopProgressThread)
46-
47-
self.progress_broadcaster = self.dbg.GetBroadcaster()
48-
self.progress_broadcaster.AddListener(self.listener, lldb.SBDebugger.eBroadcastBitProgress)
49-
50-
listener_thread = threading.Thread(target=self.fetch_events)
47+
test_broadcaster = lldb.SBBroadcaster('lldb.broadcaster.test')
48+
listener_thread = threading.Thread(target=self.fetch_events,
49+
args=[test_broadcaster])
5150
listener_thread.start()
5251

5352
lldbutil.run_to_source_breakpoint(self, 'break here', lldb.SBFileSpec('main.c'))
5453

55-
self.test_broadcaster.BroadcastEventByType(self.eBroadcastBitStopProgressThread)
54+
test_broadcaster.BroadcastEventByType(self.eBroadcastBitStopProgressThread)
5655
listener_thread.join()
5756

58-
self.assertGreater(len(self.progress_events), 0)
57+
self.assertTrue(len(self.progress_events) > 0)

0 commit comments

Comments
 (0)