lit: modernize the lit configuration for the lit tests
authorStella Stamenova <stilis@microsoft.com>
Wed, 29 May 2019 18:07:39 +0000 (18:07 +0000)
committerStella Stamenova <stilis@microsoft.com>
Wed, 29 May 2019 18:07:39 +0000 (18:07 +0000)
Summary: This also normalizes the config feature that represents the windows platform to "system-windows" as opposed to having both "windows" and "system-windows"

Reviewers: asmith, probinson

Subscribers: delcypher, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D61798

llvm-svn: 361998

llvm/utils/lit/tests/lit.cfg
llvm/utils/lit/tests/lit.site.cfg.in
llvm/utils/lit/tests/shtest-timeout.py

index 2af93d6..4648b1b 100644 (file)
@@ -4,6 +4,7 @@ import os
 import sys
 
 import lit.formats
+from lit.llvm import llvm_config
 
 # Configuration file for the 'lit' test runner.
 
@@ -25,42 +26,35 @@ config.test_exec_root = config.test_source_root
 
 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 @@ try:
 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 693364c..43f4e40 100644 (file)
@@ -16,5 +16,8 @@ except KeyError:
     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 aa7d7e1..1208e73 100644 (file)
@@ -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