| #!/usr/bin/env python3 | |
| # Copyright (c) Meta Platforms, Inc. and affiliates. | |
| # All rights reserved. | |
| # | |
| # This source code is licensed under the BSD-style license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| import glob | |
| import os | |
| import subprocess | |
| import sys | |
| from os.path import dirname, isfile, join | |
| def main() -> None: | |
| # pyre-ignore[16] | |
| if len(sys.argv) > 1: | |
| # Parse from flags. | |
| # pyre-ignore[16] | |
| file_names = [ | |
| join(dirname(__file__), n) for n in sys.argv if n.startswith("bm_") | |
| ] | |
| else: | |
| # Get all the benchmark files (starting with "bm_"). | |
| bm_files = glob.glob(join(dirname(__file__), "bm_*.py")) | |
| file_names = sorted( | |
| f for f in bm_files if isfile(f) and not f.endswith("bm_main.py") | |
| ) | |
| # Forward all important path information to the subprocesses through the | |
| # environment. | |
| os.environ["PATH"] = sys.path[0] + ":" + os.environ.get("PATH", "") | |
| os.environ["LD_LIBRARY_PATH"] = ( | |
| sys.path[0] + ":" + os.environ.get("LD_LIBRARY_PATH", "") | |
| ) | |
| os.environ["PYTHONPATH"] = ":".join(sys.path) | |
| for file_name in file_names: | |
| subprocess.check_call([sys.executable, file_name]) | |
| if __name__ == "__main__": | |
| main() # pragma: no cover | |