mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 09:36:39 +00:00

For both mlir and polly, the lit internal shell is the default shell for running lit tests. However, if the user wanted to switch back to the external shell by setting `LIT_USE_INTERNAL_SHELL=0`, the `not` used in the body of the `if` conditional changes `use_lit_shell` to be True instead of the intended False. Removing `not` allows for this lit config to work as intended. Fixes https://github.com/llvm/llvm-project/issues/106459.
84 lines
2.8 KiB
INI
84 lines
2.8 KiB
INI
# -*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.
|
|
#
|
|
# TODO: Consolidate the logic for turning on the internal shell by default for all LLVM test suites.
|
|
# See https://github.com/llvm/llvm-project/issues/106636 for more details.
|
|
#
|
|
# 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 = 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()
|