Fix unit tests for the frontend language part (#872)
This commit is contained in:
74
test/lang/run_suite.py
Normal file
74
test/lang/run_suite.py
Normal file
@@ -0,0 +1,74 @@
|
||||
import argparse
|
||||
import glob
|
||||
import multiprocessing
|
||||
import os
|
||||
import time
|
||||
import unittest
|
||||
|
||||
from sglang.utils import run_with_timeout
|
||||
|
||||
suites = {
|
||||
"minimal": ["test_openai_backend.py", "test_srt_backend.py"],
|
||||
}
|
||||
|
||||
|
||||
def run_unittest_files(files, args):
|
||||
for filename in files:
|
||||
|
||||
def func():
|
||||
print(filename)
|
||||
ret = unittest.main(module=None, argv=["", "-vb"] + [filename])
|
||||
|
||||
p = multiprocessing.Process(target=func)
|
||||
|
||||
def run_one_file():
|
||||
p.start()
|
||||
p.join()
|
||||
|
||||
try:
|
||||
run_with_timeout(run_one_file, timeout=args.time_limit_per_file)
|
||||
if p.exitcode != 0:
|
||||
return False
|
||||
except TimeoutError:
|
||||
p.terminate()
|
||||
time.sleep(5)
|
||||
print(
|
||||
f"\nTimeout after {args.time_limit_per_file} seconds "
|
||||
f"when running {filename}"
|
||||
)
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
arg_parser = argparse.ArgumentParser()
|
||||
arg_parser.add_argument(
|
||||
"--time-limit-per-file",
|
||||
type=int,
|
||||
default=1000,
|
||||
help="The time limit for running one file in seconds.",
|
||||
)
|
||||
arg_parser.add_argument(
|
||||
"--suite",
|
||||
type=str,
|
||||
default=list(suites.keys())[0],
|
||||
choices=list(suites.keys()) + ["all"],
|
||||
help="The suite to run",
|
||||
)
|
||||
args = arg_parser.parse_args()
|
||||
|
||||
if args.suite == "all":
|
||||
files = glob.glob("**/test_*.py", recursive=True)
|
||||
else:
|
||||
files = suites[args.suite]
|
||||
|
||||
tic = time.time()
|
||||
success = run_unittest_files(files, args)
|
||||
|
||||
if success:
|
||||
print(f"Success. Time elapsed: {time.time() - tic:.2f}s")
|
||||
else:
|
||||
print(f"Fail. Time elapsed: {time.time() - tic:.2f}s")
|
||||
|
||||
exit(0 if success else -1)
|
||||
Reference in New Issue
Block a user