| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- """Runs `lit` for testing."""
- __copyright__ = """
- Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- Exceptions. See /LICENSE for license information.
- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- """
- import argparse
- import os
- from pathlib import Path
- import subprocess
- def _parse_args():
- """Parses command line arguments, returning the result."""
- arg_parser = argparse.ArgumentParser(description=__doc__)
- arg_parser.add_argument(
- "--package_name", help="The directory containing tests to run."
- )
- arg_parser.add_argument(
- "lit_args", nargs="*", help="Arguments to pass through to lit."
- )
- return arg_parser.parse_args()
- def main():
- parsed_args = _parse_args()
- args = [
- str(Path(os.environ["TEST_SRCDIR"]).joinpath("llvm-project/llvm/lit")),
- str(Path.cwd().joinpath(parsed_args.package_name)),
- "-v",
- ]
- # Force tests to be explicit about command paths.
- env = os.environ.copy()
- del env["PATH"]
- # Run lit.
- try:
- subprocess.check_call(args=args + parsed_args.lit_args, env=env)
- except subprocess.CalledProcessError as e:
- # Print without the stack trace.
- exit(e)
- if __name__ == "__main__":
- exit(main())
|