| # -*clang- Python -*- |
| |
| import os |
| import platform |
| import re |
| import subprocess |
| |
| import lit.formats |
| import lit.util |
| |
| from lit.llvm import llvm_config |
| |
| # Configuration file for the 'lit' test runner. |
| |
| # name: The name of this test suite. |
| config.name = 'Polly' |
| |
| # testFormat: The test format to use to interpret tests. |
| # |
| # For now we require '&&' between commands, until they get globally killed and |
| # the test runner updated. |
| # |
| # We prefer the lit internal shell which provides a better user experience on failures |
| # unless the user explicitly disables it with LIT_USE_INTERNAL_SHELL=0 env var. |
| use_lit_shell = True |
| lit_shell_env = os.environ.get("LIT_USE_INTERNAL_SHELL") |
| if lit_shell_env: |
| use_lit_shell = not lit.util.pythonize_bool(lit_shell_env) |
| |
| config.test_format = lit.formats.ShTest(execute_external=not use_lit_shell) |
| |
| # suffixes: A list of file extensions to treat as test files. |
| config.suffixes = ['.ll'] |
| |
| # test_source_root: The root path where tests are located. |
| config.test_source_root = os.path.dirname(__file__) |
| |
| # test_exec_root: The root path where tests should be run. |
| config.test_exec_root = os.path.join(config.polly_obj_root, 'test') |
| |
| # Tweak the PATH to include the tools dir and the scripts dir. |
| base_paths = [config.llvm_tools_dir, config.environment['PATH']] |
| path = os.path.pathsep.join(base_paths + config.extra_paths) |
| config.environment['PATH'] = path |
| |
| path = os.path.pathsep.join((config.llvm_libs_dir, |
| config.environment.get('LD_LIBRARY_PATH',''))) |
| config.environment['LD_LIBRARY_PATH'] = path |
| |
| llvm_config.use_default_substitutions() |
| |
| tool_patterns = ['opt', 'polly-isl-test'] |
| llvm_config.add_tool_substitutions(tool_patterns) |
| |
| # opt knows whether it is compiled with -DNDEBUG. |
| import subprocess |
| try: |
| opt_cmd = subprocess.Popen([os.path.join(config.llvm_tools_dir, 'opt'), '-version'], |
| stdout = subprocess.PIPE, |
| env=config.environment) |
| except OSError: |
| print("Could not find opt in " + config.llvm_tools_dir) |
| exit(42) |
| |
| if re.search(r'with assertions', opt_cmd.stdout.read().decode('ascii')): |
| config.available_features.add('asserts') |
| opt_cmd.wait() |
| |
| try: |
| llvm_config_cmd = subprocess.Popen([os.path.join( |
| config.llvm_tools_dir, |
| 'llvm-config'), |
| '--targets-built'], |
| stdout = subprocess.PIPE, |
| env=config.environment) |
| except OSError: |
| print("Could not find llvm-config in " + config.llvm_tools_dir) |
| exit(42) |
| |
| llvm_config_cmd.wait() |