]> granicus.if.org Git - llvm/commit
lit: Let lit.util.which() return a normcase()ed path
authorNico Weber <nicolasweber@gmx.de>
Thu, 31 Jan 2019 00:40:43 +0000 (00:40 +0000)
committerNico Weber <nicolasweber@gmx.de>
Thu, 31 Jan 2019 00:40:43 +0000 (00:40 +0000)
commita53d6c2052d627a8f47df02bd587c99899e35ed1
treec9516fde44d68663c2fab87831690471a1ceba38
parent6b2f7bde7bef14900a2bce71f927a0e7d9cc55ab
lit: Let lit.util.which() return a normcase()ed path

LLVMConfig.with_environment() uses os.path.normcase(os.path.normpath(x)) to
normalize temporary env vars. LLVMConfig.use_clang() uses with_environment() to
temporarily set PATH and then look for clang there. This means that on Windows,
clang will be run with a path like c:\foo\bin\clang.EXE (with a lower-case
"C:").

lit.util.which() used to not do this, which means the executables added in
clang/test/lit.cfg.py (e.g. c-index-test) were run with a path like
C:\foo\bin\c-index-test.EXE (because both CMake and GN happen to write
clang_tools_dir with an upper-case C to lit.site.cfg.py).

clang/test/Index/pch-from-libclang.c requires that both c-index-test and clang
use _exactly_ the same resource dir path (same case and everything), because a
hash of the resource directory is used as module cache path.

This patch is necessary but not sufficient to make pch-from-libclang.c pass on
Windows.

Differential Revision: https://reviews.llvm.org/D57343

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352704 91177308-0d34-0410-b5e6-96231b3b80d8
utils/lit/lit/util.py