test/lit.cfg: Add PATHEXT to 'substitution', to recognize tools on Windows hosts...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 24 Feb 2011 12:34:34 +0000 (12:34 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 24 Feb 2011 12:34:34 +0000 (12:34 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126383 91177308-0d34-0410-b5e6-96231b3b80d8

test/lit.cfg

index 9a4cfa4d3888bbb037200ed9f4c281fb4e3bb70a..9a2f74c21c93f368feffef976de0427ef8b97045 100644 (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 = []