brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · ee7a820 Raw
50 lines · python
1"""Provides common functionality to the test scripts."""2 3import os4import sys5from pathlib import Path6 7 8def set_source(source):9    """Checks whether the source file exists and returns its path."""10    if not Path(source).is_file():11        die(source)12    return Path(source)13 14 15def set_executable(executable):16    """Checks whether a Flang executable has been set and returns its path."""17    flang_fc1 = Path(executable)18    if not flang_fc1.is_file():19        die(flang_fc1)20    return str(flang_fc1)21 22 23def set_temp(tmp):24    """Sets a temporary directory or creates one if it doesn't exist."""25    os.makedirs(Path(tmp), exist_ok=True)26    return Path(tmp)27 28 29def die(file=None):30    """Used in other functions."""31    if file is None:32        print(f"{sys.argv[0]}: FAIL")33    else:34        print(f"{sys.argv[0]}: File not found: {file}")35    sys.exit(1)36 37 38def check_args(args):39    """Verifies that 2 arguments have been passed."""40    if len(args) < 3:41        print(f"Usage: {args[0]} <fortran-source> <flang-command>")42        sys.exit(1)43 44 45def check_args_long(args):46    """Verifies that 3 arguments have been passed."""47    if len(args) < 4:48        print(f"Usage: {args[0]} <fortran-source> <temp-test-dir> <flang-command>")49        sys.exit(1)50