You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				| #!/usr/bin/env python3
 | |
| import os
 | |
| import random
 | |
| import subprocess
 | |
| import time
 | |
| from pathlib import Path
 | |
| from common.basedir import BASEDIR
 | |
| 
 | |
| os.environ["LD_LIBRARY_PATH"] = ""
 | |
| 
 | |
| # pull this from the provisioning tests
 | |
| play_sound = os.path.join(BASEDIR, "selfdrive/ui/test/play_sound")
 | |
| waste = os.path.join(BASEDIR, "scripts/waste")
 | |
| sound_path = Path(os.path.join(BASEDIR, "selfdrive/assets/sounds"))
 | |
| 
 | |
| def sound_test():
 | |
| 
 | |
|   # max volume
 | |
|   vol = 15
 | |
|   sound_files = [p.absolute() for p in sound_path.iterdir() if str(p).endswith(".wav")]
 | |
| 
 | |
|   # start waste
 | |
|   p = subprocess.Popen([waste], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
 | |
| 
 | |
|   start_time = time.monotonic()
 | |
|   frame = 0
 | |
|   while True:
 | |
|     # start a few processes
 | |
|     procs = []
 | |
|     for _ in range(random.randint(5, 20)):
 | |
|       sound = random.choice(sound_files)
 | |
|       p = subprocess.Popen([play_sound, str(sound), str(vol)], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
 | |
|       procs.append(p)
 | |
|       time.sleep(random.uniform(0, 0.75))
 | |
| 
 | |
|     # and kill them
 | |
|     time.sleep(random.uniform(0, 5))
 | |
|     for p in procs:
 | |
|       p.terminate()
 | |
| 
 | |
|     # write stats
 | |
|     stats = f"running time {time.monotonic() - start_time}s, cycle {frame}"
 | |
|     with open("/tmp/sound_stats.txt", "a") as f:
 | |
|       f.write(stats)
 | |
|     print(stats)
 | |
|     frame +=1
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|   sound_test()
 | |
| 
 |