|  |  | @ -5,6 +5,8 @@ import signal | 
			
		
	
		
		
			
				
					
					|  |  |  | import time |  |  |  | import time | 
			
		
	
		
		
			
				
					
					|  |  |  | import unittest |  |  |  | import unittest | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | from parameterized import parameterized | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | from cereal import car |  |  |  | from cereal import car | 
			
		
	
		
		
			
				
					
					|  |  |  | from openpilot.common.params import Params |  |  |  | from openpilot.common.params import Params | 
			
		
	
		
		
			
				
					
					|  |  |  | import openpilot.selfdrive.manager.manager as manager |  |  |  | import openpilot.selfdrive.manager.manager as manager | 
			
		
	
	
		
		
			
				
					|  |  | @ -38,13 +40,13 @@ class TestManager(unittest.TestCase): | 
			
		
	
		
		
			
				
					
					|  |  |  |     # TODO: ensure there are blacklisted procs until we have a dedicated test |  |  |  |     # TODO: ensure there are blacklisted procs until we have a dedicated test | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.assertTrue(len(BLACKLIST_PROCS), "No blacklisted procs to test not_run") |  |  |  |     self.assertTrue(len(BLACKLIST_PROCS), "No blacklisted procs to test not_run") | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   def test_startup_time(self): |  |  |  |   @parameterized.expand(range(10)) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     for _ in range(10): |  |  |  |   def test_startup_time(self, index): | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       start = time.monotonic() |  |  |  |     start = time.monotonic() | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       os.environ['PREPAREONLY'] = '1' |  |  |  |     os.environ['PREPAREONLY'] = '1' | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       manager.main() |  |  |  |     manager.main() | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       t = time.monotonic() - start |  |  |  |     t = time.monotonic() - start | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       assert t < MAX_STARTUP_TIME, f"startup took {t}s, expected <{MAX_STARTUP_TIME}s" |  |  |  |     assert t < MAX_STARTUP_TIME, f"startup took {t}s, expected <{MAX_STARTUP_TIME}s" | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   @unittest.skip("this test is flaky the way it's currently written, should be moved to test_onroad") |  |  |  |   @unittest.skip("this test is flaky the way it's currently written, should be moved to test_onroad") | 
			
		
	
		
		
			
				
					
					|  |  |  |   def test_clean_exit(self): |  |  |  |   def test_clean_exit(self): | 
			
		
	
	
		
		
			
				
					|  |  | 
 |