[llvm] r312254 - [lit] Make symlinks in test paths work a different way

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 31 10:07:36 PDT 2017


Author: rnk
Date: Thu Aug 31 10:07:35 2017
New Revision: 312254

URL: http://llvm.org/viewvc/llvm-project?rev=312254&view=rev
Log:
[lit] Make symlinks in test paths work a different way

Use os.path.normpath instead of realpath to collapse '..' and '.' path
components. Use realpath when caching search results about a path for
good measure.

I considered rigging up a test involving symlinks for this, but I doubt
I can check a symlink into SVN. The test would have to conditionally
create a symlink at runtime if the host OS supports it. This sounds too
fragile and complicated to me to be worth it.

Modified:
    llvm/trunk/utils/lit/lit/discovery.py

Modified: llvm/trunk/utils/lit/lit/discovery.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/discovery.py?rev=312254&r1=312253&r2=312254&view=diff
==============================================================================
--- llvm/trunk/utils/lit/lit/discovery.py (original)
+++ llvm/trunk/utils/lit/lit/discovery.py Thu Aug 31 10:07:35 2017
@@ -52,13 +52,14 @@ def getTestSuite(item, litConfig, cache)
 
     def search(path):
         # Check for an already instantiated test suite.
-        res = cache.get(path)
+        real_path = os.path.realpath(path)
+        res = cache.get(real_path)
         if res is None:
-            cache[path] = res = search1(path)
+            cache[real_path] = res = search1(path)
         return res
 
     # Canonicalize the path.
-    item = os.path.realpath(item)
+    item = os.path.normpath(item)
 
     # Skip files and virtual components.
     components = []




More information about the llvm-commits mailing list