@ -1,21 +1,22 @@ 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					#!/usr/bin/env python3  
					 
					 
					 
					#!/usr/bin/env python3  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					import  glob  
					 
					 
					 
					import  glob  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					import  os  
					 
					 
					 
					import  os  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					import  shutil  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					import  time  
					 
					 
					 
					import  time  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					import  unittest  
					 
					 
					 
					import  unittest  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					import  cereal . messaging  as  messaging  
					 
					 
					 
					import  cereal . messaging  as  messaging  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					from  openpilot . selfdrive . manager . process_config  import  managed_processes  
					 
					 
					 
					from  openpilot . selfdrive . manager . process_config  import  managed_processes  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					from  openpilot . system . swaglog  import  cloudlog ,  SWAGLOG_DIR  
					 
					 
					 
					from  openpilot . system . swaglog  import  cloudlog ,  ipchandler  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					from  selfdrive . test . helpers  import  temporary_swaglog_dir  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					class  TestLogmessaged ( unittest . TestCase ) :  
					 
					 
					 
					class  TestLogmessaged ( unittest . TestCase ) :  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  def  _setup ( self ,  temp_dir ) :   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    # clear the IPC buffer in case some other tests used cloudlog and filled it   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    ipchandler . close ( )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    ipchandler . connect ( )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  def  setUp ( self ) :   
					 
					 
					 
					    self . temp_dir  =  temp_dir   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					    if  os . path . exists ( SWAGLOG_DIR ) :   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      shutil . rmtree ( SWAGLOG_DIR )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					    managed_processes [ ' logmessaged ' ] . start ( )   
					 
					 
					 
					    managed_processes [ ' logmessaged ' ] . start ( )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    self . sock  =  messaging . sub_sock ( " logMessage " ,  timeout = 1000 ,  conflate = False )   
					 
					 
					 
					    self . sock  =  messaging . sub_sock ( " logMessage " ,  timeout = 1000 ,  conflate = False )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    self . error_sock  =  messaging . sub_sock ( " logMessage " ,  timeout = 1000 ,  conflate = False )   
					 
					 
					 
					    self . error_sock  =  messaging . sub_sock ( " logMessage " ,  timeout = 1000 ,  conflate = False )   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -31,9 +32,11 @@ class TestLogmessaged(unittest.TestCase): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    managed_processes [ ' logmessaged ' ] . stop ( block = True )   
					 
					 
					 
					    managed_processes [ ' logmessaged ' ] . stop ( block = True )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  def  _get_log_files ( self ) :   
					 
					 
					 
					  def  _get_log_files ( self ) :   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    return  list ( glob . glob ( os . path . join ( SWAGLOG_DIR ,  " swaglog.* " ) ) )   
					 
					 
					 
					    return  list ( glob . glob ( os . path . join ( self . temp_dir ,  " swaglog.* " ) ) )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  def  test_simple_log ( self ) :   
					 
					 
					 
					  @temporary_swaglog_dir   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  def  test_simple_log ( self ,  temp_dir ) :   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    self . _setup ( temp_dir )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    msgs  =  [ f " abc  { i } "  for  i  in  range ( 10 ) ]   
					 
					 
					 
					    msgs  =  [ f " abc  { i } "  for  i  in  range ( 10 ) ]   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    for  m  in  msgs :   
					 
					 
					 
					    for  m  in  msgs :   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      cloudlog . error ( m )   
					 
					 
					 
					      cloudlog . error ( m )   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -42,7 +45,9 @@ class TestLogmessaged(unittest.TestCase): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    assert  len ( m )  ==  len ( msgs )   
					 
					 
					 
					    assert  len ( m )  ==  len ( msgs )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    assert  len ( self . _get_log_files ( ) )  > =  1   
					 
					 
					 
					    assert  len ( self . _get_log_files ( ) )  > =  1   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  def  test_big_log ( self ) :   
					 
					 
					 
					  @temporary_swaglog_dir   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					  def  test_big_log ( self ,  temp_dir ) :   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					    self . _setup ( temp_dir )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    n  =  10   
					 
					 
					 
					    n  =  10   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    msg  =  " a " * 3 * 1024 * 1024   
					 
					 
					 
					    msg  =  " a " * 3 * 1024 * 1024   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    for  _  in  range ( n ) :   
					 
					 
					 
					    for  _  in  range ( n ) :