85 lines
2.2 KiB
Python
85 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""Run all model tests and report results"""
|
|
import subprocess
|
|
import sys
|
|
import os
|
|
import time
|
|
|
|
TEST_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
PROJECT_DIR = os.path.dirname(TEST_DIR)
|
|
|
|
tests = [
|
|
"test_fsmn_vad.py",
|
|
"test_ct_transformer.py",
|
|
"test_paraformer.py",
|
|
"test_sensevoice.py",
|
|
"test_campplus.py",
|
|
"test_paraformer_streaming.py",
|
|
"test_qwen3_asr.py",
|
|
"test_glm_asr.py",
|
|
"test_eres2netv2.py",
|
|
]
|
|
|
|
SEP = "-" * 60
|
|
DSEP = "=" * 60
|
|
|
|
def main():
|
|
results = {}
|
|
total_start = time.time()
|
|
|
|
env = os.environ.copy()
|
|
env["PYTHONPATH"] = PROJECT_DIR + ":" + env.get("PYTHONPATH", "")
|
|
|
|
print(DSEP)
|
|
print("FunASR Model Tests")
|
|
print(DSEP)
|
|
|
|
for test_file in tests:
|
|
test_path = os.path.join(TEST_DIR, test_file)
|
|
print("\n" + SEP)
|
|
print("Running: " + test_file)
|
|
print(SEP)
|
|
|
|
t0 = time.time()
|
|
try:
|
|
result = subprocess.run(
|
|
[sys.executable, test_path],
|
|
cwd=PROJECT_DIR,
|
|
env=env,
|
|
timeout=300,
|
|
capture_output=False,
|
|
)
|
|
elapsed = time.time() - t0
|
|
results[test_file] = ("PASSED" if result.returncode == 0 else "FAILED", elapsed)
|
|
except subprocess.TimeoutExpired:
|
|
elapsed = time.time() - t0
|
|
results[test_file] = ("TIMEOUT", elapsed)
|
|
print(" TIMEOUT after %.1fs" % elapsed)
|
|
except Exception as e:
|
|
elapsed = time.time() - t0
|
|
results[test_file] = ("ERROR", elapsed)
|
|
print(" ERROR: %s" % e)
|
|
|
|
total_elapsed = time.time() - total_start
|
|
|
|
print("\n" + DSEP)
|
|
print("SUMMARY")
|
|
print(DSEP)
|
|
passed = 0
|
|
failed = 0
|
|
for test_file, (status, elapsed) in results.items():
|
|
icon = "+" if status == "PASSED" else "x"
|
|
print(" %s %-35s %-8s (%.1fs)" % (icon, test_file, status, elapsed))
|
|
if status == "PASSED":
|
|
passed += 1
|
|
else:
|
|
failed += 1
|
|
|
|
print("\n Total: %d passed, %d failed, %.1fs elapsed" % (passed, failed, total_elapsed))
|
|
print(DSEP)
|
|
return 0 if failed == 0 else 1
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|