test/lit.cfg: Add PATHEXT to 'substitution', to recognize tools on Windows hosts. Thanks to Danil Malyshev!

Some tests on Windows use the "not" utility and fail with an error "program not executable". The reason for this error is that the name of the executable file sended to the "not" without the extension.

llvm-svn: 126383
This commit is contained in:
NAKAMURA Takumi 2011-02-24 12:34:34 +00:00
parent 47481b9754
commit cb1b5ff9c6
1 changed files with 9 additions and 0 deletions

View File

@ -175,6 +175,10 @@ for sub in ['llvmgcc', 'llvmgxx', 'emitir', 'compile_cxx', 'compile_c',
# (llvm_tools_dir in lit parlance).
# Don't match 'bugpoint-' or 'clang-'.
# Don't match '/clang'.
if os.pathsep == ';':
pathext = os.environ.get('PATHEXT', '').split(';')
else:
pathext = ['']
for pattern in [r"\bbugpoint\b(?!-)", r"(?<!/)\bclang\b(?!-)",
r"\bgold\b",
r"\bllc\b", r"\blli\b",
@ -204,6 +208,11 @@ for pattern in [r"\bbugpoint\b(?!-)", r"(?<!/)\bclang\b(?!-)",
substitution = re.sub(r"^(\\)?((\| )?)\W+b([0-9A-Za-z-_]+)\\b\W*$",
r"\2" + llvm_tools_dir + "/" + r"\4",
pattern)
for ext in pathext:
substitution_ext = substitution + ext
if os.path.exists(substitution_ext):
substitution = substitution_ext
break
config.substitutions.append((pattern, substitution))
excludes = []