| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -59,12 +59,12 @@ class TestManager(unittest.TestCase): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        self.assertTrue(state.running, f"{p.name} not running") | 
					 | 
					 | 
					 | 
					        self.assertTrue(state.running, f"{p.name} not running") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        exit_code = p.stop(retry=False) | 
					 | 
					 | 
					 | 
					        exit_code = p.stop(retry=False) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        self.assertTrue(exit_code is not None, f"{p.name} failed to exit") | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        # TODO: mapsd should exit cleanly | 
					 | 
					 | 
					 | 
					        # TODO: mapsd should exit cleanly | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if p.name == "mapsd": | 
					 | 
					 | 
					 | 
					        if p.name == "mapsd": | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					          continue | 
					 | 
					 | 
					 | 
					          continue | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        self.assertTrue(exit_code is not None, f"{p.name} failed to exit") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        # TODO: interrupted blocking read exits with 1 in cereal. use a more unique return code | 
					 | 
					 | 
					 | 
					        # TODO: interrupted blocking read exits with 1 in cereal. use a more unique return code | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        exit_codes = [0, 1] | 
					 | 
					 | 
					 | 
					        exit_codes = [0, 1] | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if p.sigkill: | 
					 | 
					 | 
					 | 
					        if p.sigkill: | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |