Sound stability test (#2089)

* play sound

* clean this up

* no cereal

* fix module issue

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 685340d578
commatwo_master
Adeeb Shihadeh 5 years ago committed by GitHub
parent 6919e06a9c
commit cc2c6180f9
  1. 0
      selfdrive/modeld/test/polyfit/__init__.py
  2. 0
      selfdrive/ui/test/__init__.py
  3. 49
      selfdrive/ui/test/test_sound_stability.py

@ -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…
Cancel
Save