Index: utils/lit/tests/lit.cfg =================================================================== --- utils/lit/tests/lit.cfg +++ utils/lit/tests/lit.cfg @@ -4,6 +4,7 @@ import sys import lit.formats +from lit.llvm import llvm_config # Configuration file for the 'lit' test runner. @@ -25,42 +26,35 @@ config.target_triple = '(unused)' -src_root = os.path.join(config.test_source_root, '..') llvm_src_root = getattr(config, 'llvm_src_root', None) -if llvm_src_root != None: - # ``src_root`` may be in LLVM's binary build directory which does not contain +if llvm_src_root: + # ``test_source_root`` may be in LLVM's binary build directory which does not contain # ``lit.py``, so use `llvm_src_root` instead. lit_path = os.path.join(llvm_src_root, 'utils', 'lit') else: - lit_path = src_root + lit_path = os.path.join(config.test_source_root, '..') -pythonpath_list = [lit_path] # Required because some tests import the lit module +# Required because some tests import the lit module +llvm_config.with_environment('PYTHONPATH', lit_path, append_path=True) -# Ensure the user's PYTHONPATH is included. -if 'PYTHONPATH' in os.environ: - pythonpath_list.append(os.environ['PYTHONPATH']) -if 'PYTHONPATH' in config.environment: - pythonpath_list.append(config.environment['PYTHONPATH']) -config.environment['PYTHONPATH'] = os.pathsep.join(pythonpath_list) +# Add llvm and lit tools directories if this config is being loaded indirectly. +for attribute in ('llvm_tools_dir', 'lit_tools_dir'): + directory = getattr(config, attribute, None) + if directory: + llvm_config.with_environment('PATH', directory, append_path=True) -config.substitutions.append(('%{src_root}', src_root)) config.substitutions.append(('%{inputs}', os.path.join( - src_root, 'tests', 'Inputs'))) + config.test_source_root, 'Inputs'))) config.substitutions.append(('%{lit}', "%%{python} %s" % ( - os.path.join(lit_path, 'lit.py'),))) + os.path.join(lit_path, 'lit.py'),))) config.substitutions.append(('%{python}', '"%s"' % (sys.executable))) - # Enable coverage.py reporting, assuming the coverage module has been installed # and sitecustomize.py in the virtualenv has been modified appropriately. if lit_config.params.get('check-coverage', None): config.environment['COVERAGE_PROCESS_START'] = os.path.join( os.path.dirname(__file__), ".coveragerc") -# Add a feature to detect the Python version. -config.available_features.add("python%d.%d" % (sys.version_info[0], - sys.version_info[1])) - # Add a feature to detect if psutil is available try: import psutil @@ -69,14 +63,3 @@ except ImportError: lit_config.warning('Could not import psutil. Some tests will be skipped and' ' the --timeout command line argument will not work.') - -if sys.platform.startswith('win') or sys.platform.startswith('cygwin'): - config.available_features.add('windows') - -# Add llvm and lit tools directories if this config is being loaded indirectly. -path = config.environment['PATH'] -for attribute in ('llvm_tools_dir', 'lit_tools_dir'): - directory = getattr(config, attribute, None) - if directory: - path = os.path.pathsep.join((directory, path)) -config.environment['PATH'] = path Index: utils/lit/tests/lit.site.cfg.in =================================================================== --- utils/lit/tests/lit.site.cfg.in +++ utils/lit/tests/lit.site.cfg.in @@ -16,5 +16,8 @@ key, = e.args lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key,key)) +import lit.llvm +lit.llvm.initialize(lit_config, config) + # Let the main config do the real work. lit_config.load_config(config, "@LLVM_BINARY_DIR@/utils/lit/tests/lit.cfg") Index: utils/lit/tests/shtest-timeout.py =================================================================== --- utils/lit/tests/shtest-timeout.py +++ utils/lit/tests/shtest-timeout.py @@ -1,9 +1,7 @@ # REQUIRES: python-psutil # llvm.org/PR33944 -# This should be system-windows as windows does not cover all cases, but -# apparently neither does system-windows -# UNSUPPORTED: windows +# UNSUPPORTED: system-windows # FIXME: This test is fragile because it relies on time which can # be affected by system performance. In particular we are currently