22Test that we are able to broadcast and receive progress events from lldb 
33""" 
44import  lldb 
5+ import  threading 
56
67import  lldbsuite .test .lldbutil  as  lldbutil 
78
@@ -16,6 +17,36 @@ def setUp(self):
1617            self .broadcaster , lldb .SBDebugger .eBroadcastBitProgress 
1718        )
1819
20+     def  test_wait_attach_progress_reporting (self ):
21+         """Test that progress reports for wait attaching work as intended.""" 
22+         self .build ()
23+         target  =  self .dbg .CreateTarget (None )
24+ 
25+         # Wait attach to a process, then check to see that a progress report was created 
26+         # and that its message is correct for waiting to attach to a process. 
27+         class  AttachThread (threading .Thread ):
28+             def  __init__ (self , target ):
29+                 threading .Thread .__init__ (self )
30+                 self .target  =  target 
31+ 
32+             def  run (self ):
33+                 self .target .AttachToProcessWithName (
34+                     lldb .SBListener (), "a.out" , True , lldb .SBError ()
35+                 )
36+ 
37+         thread  =  AttachThread (target )
38+         thread .start ()
39+ 
40+         event  =  lldbutil .fetch_next_event (self , self .listener , self .broadcaster )
41+         progress_data  =  lldb .SBDebugger .GetProgressDataFromEvent (event )
42+         message  =  progress_data .GetValueForKey ("message" ).GetStringValue (100 )
43+         self .assertEqual (message , "Waiting to attach to process" )
44+ 
45+         # Interrupt the process attach to keep the test from stalling. 
46+         target .process .SendAsyncInterrupt ()
47+ 
48+         thread .join ()
49+ 
1950    def  test_dwarf_symbol_loading_progress_report (self ):
2051        """Test that we are able to fetch dwarf symbol loading progress events""" 
2152        self .build ()
0 commit comments