diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2017-10-17 23:46:34 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2017-10-17 23:46:34 +0000 |
commit | c03ceb92ca601adb1dd11a957e77dc5782b25216 (patch) | |
tree | 4bdddf578cc5e5ac298ac0c5cc3129561a474eb8 /llvm | |
parent | 8eb7005e213c1016d2d8a0709806ff877540860a (diff) | |
download | bcm5719-llvm-c03ceb92ca601adb1dd11a957e77dc5782b25216.tar.gz bcm5719-llvm-c03ceb92ca601adb1dd11a957e77dc5782b25216.zip |
lit: Improve %: normalization.
The new scheme should match the normalization of embedded paths in
linkrepro tar files.
Differential Revision: https://reviews.llvm.org/D39023
llvm-svn: 316044
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/utils/lit/lit/TestRunner.py | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py index b874f9ee61b..4def05d8870 100644 --- a/llvm/utils/lit/lit/TestRunner.py +++ b/llvm/utils/lit/lit/TestRunner.py @@ -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, tmpBase, normalize_slashes=False): ('%/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): |