[llvm] r316044 - lit: Improve %: normalization.
Peter Collingbourne via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 17 16:46:34 PDT 2017
Author: pcc
Date: Tue Oct 17 16:46:34 2017
New Revision: 316044
URL: http://llvm.org/viewvc/llvm-project?rev=316044&view=rev
Log:
lit: Improve %: normalization.
The new scheme should match the normalization of embedded paths in
linkrepro tar files.
Differential Revision: https://reviews.llvm.org/D39023
Modified:
llvm/trunk/utils/lit/lit/TestRunner.py
Modified: llvm/trunk/utils/lit/lit/TestRunner.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/TestRunner.py?rev=316044&r1=316043&r2=316044&view=diff
==============================================================================
--- llvm/trunk/utils/lit/lit/TestRunner.py (original)
+++ llvm/trunk/utils/lit/lit/TestRunner.py Tue Oct 17 16:46:34 2017
@@ -825,6 +825,13 @@ def getTempPaths(test):
tmpBase = os.path.join(tmpDir, execbase)
return tmpDir, tmpBase
+def colonNormalizePath(path):
+ if kIsWindows:
+ return re.sub(r'^(.):', r'\1', path.replace('\\', '/'))
+ else:
+ assert path[0] == '/'
+ return path[1:]
+
def getDefaultSubstitutions(test, tmpDir, tmpBase, normalize_slashes=False):
sourcepath = test.getSourcePath()
sourcedir = os.path.dirname(sourcepath)
@@ -860,23 +867,15 @@ def getDefaultSubstitutions(test, tmpDir
('%/T', tmpDir.replace('\\', '/')),
])
- # "%:[STpst]" are paths without colons.
- if kIsWindows:
- substitutions.extend([
- ('%:s', re.sub(r'^(.):', r'\1', sourcepath)),
- ('%:S', re.sub(r'^(.):', r'\1', sourcedir)),
- ('%:p', re.sub(r'^(.):', r'\1', sourcedir)),
- ('%:t', re.sub(r'^(.):', r'\1', tmpBase) + '.tmp'),
- ('%:T', re.sub(r'^(.):', r'\1', tmpDir)),
- ])
- else:
- substitutions.extend([
- ('%:s', sourcepath),
- ('%:S', sourcedir),
- ('%:p', sourcedir),
- ('%:t', tmpBase + '.tmp'),
- ('%:T', tmpDir),
- ])
+ # "%:[STpst]" are normalized paths without colons and without a leading
+ # slash.
+ substitutions.extend([
+ ('%:s', colonNormalizePath(sourcepath)),
+ ('%:S', colonNormalizePath(sourcedir)),
+ ('%:p', colonNormalizePath(sourcedir)),
+ ('%:t', colonNormalizePath(tmpBase + '.tmp')),
+ ('%:T', colonNormalizePath(tmpDir)),
+ ])
return substitutions
def applySubstitutions(script, substitutions):
More information about the llvm-commits
mailing list