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
parent
6919e06a9c
commit
cc2c6180f9
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