Sound stability test (#2089)
	
		
	
				
					
				
			* play sound * clean this up * no cereal * fix module issue Co-authored-by: Comma Device <device@comma.ai>pull/49/head
							parent
							
								
									82f40f6ff5
								
							
						
					
					
						commit
						685340d578
					
				
				 3 changed files with 49 additions and 0 deletions
			
			
		| @ -0,0 +1,49 @@ | |||||||
|  | #!/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() | ||||||
					Loading…
					
					
				
		Reference in new issue