Open-Sora / apex /tests /L0 /run_test.py
kadirnar's picture
Upload 494 files
8a42f8f verified
raw
history blame
3.27 kB
"""L0 Tests Runner.
How to run this script?
1. Run all the tests: `python /path/to/apex/tests/L0/run_test.py` If you want an xml report,
pass `--xml-report`, i.e. `python /path/to/apex/tests/L0/run_test.py --xml-report` and
the file is created in `/path/to/apex/tests/L0`.
2. Run one of the tests (e.g. fused layer norm):
`python /path/to/apex/tests/L0/run_test.py --include run_fused_layer_norm`
3. Run two or more of the tests (e.g. optimizers and fused layer norm):
`python /path/to/apex/tests/L0/run_test.py --include run_optimizers run_fused_layer_norm`
"""
import argparse
import os
import unittest
import sys
TEST_ROOT = os.path.dirname(os.path.abspath(__file__))
TEST_DIRS = [
"run_amp",
"run_deprecated",
"run_fp16util",
"run_optimizers",
"run_fused_layer_norm",
"run_mlp",
"run_transformer",
]
DEFAULT_TEST_DIRS = [
"run_optimizers",
"run_fused_layer_norm",
"run_mlp",
"run_transformer",
]
def parse_args():
parser = argparse.ArgumentParser(
description="L0 test runner",
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)
parser.add_argument(
"--include",
nargs="+",
choices=TEST_DIRS,
default=DEFAULT_TEST_DIRS,
help="select a set of tests to run (defaults to ALL tests).",
)
parser.add_argument(
"--xml-report",
default=None,
action="store_true",
help="[deprecated] pass this argument to get a junit xml report. Use `--xml-dir`. (requires `xmlrunner`)",
)
parser.add_argument(
"--xml-dir",
default=None,
type=str,
help="Directory to save junit test reports. (requires `xmlrunner`)",
)
args, _ = parser.parse_known_args()
return args
def main(args: argparse.Namespace) -> None:
test_runner_kwargs = {"verbosity": 2}
Runner = unittest.TextTestRunner
xml_dir = None
if (args.xml_report is not None) or (args.xml_dir is not None):
if args.xml_report is not None:
import warnings
warnings.warn("The option of `--xml-report` is deprecated", FutureWarning)
import xmlrunner
from datetime import date # NOQA
Runner = xmlrunner.XMLTestRunner
if args.xml_report:
xml_dir = os.path.abspath(os.path.dirname(__file__))
else:
xml_dir = os.path.abspath(args.xml_dir)
if not os.path.exists(xml_dir):
os.makedirs(xml_dir)
errcode = 0
for test_dir in args.include:
if xml_dir is not None:
xml_output = os.path.join(
xml_dir,
f"""TEST_{test_dir}_{date.today().strftime("%y%m%d")}""",
)
if not os.path.exists(xml_output):
os.makedirs(xml_output)
test_runner_kwargs["output"] = xml_output
runner = Runner(**test_runner_kwargs)
test_dir = os.path.join(TEST_ROOT, test_dir)
suite = unittest.TestLoader().discover(test_dir)
print("\nExecuting tests from " + test_dir)
result = runner.run(suite)
if not result.wasSuccessful():
errcode = 1
sys.exit(errcode)
if __name__ == '__main__':
args = parse_args()
main(args)