[lit] Fix launching executables relative to the cwd after 'cd'

This was affecting test/asan/TestCases/Windows/coverage-basic.cc in
compiler-rt. It does something like:

  cd %T/mydir
  %clang %s -o t.exe
  ./t.exe

Previously, we'd end up looking for t.exe relative to the cwd of the lit
process, not the cwd of the test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242941 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Kleckner 2015-07-22 21:35:27 +00:00
parent e7aafe5ecc
commit bc6cbbfa80
1 changed files with 8 additions and 1 deletions

View File

@ -178,7 +178,14 @@ def executeShCmd(cmd, shenv, results):
# Resolve the executable path ourselves.
args = list(j.args)
executable = lit.util.which(args[0], cmd_shenv.env['PATH'])
executable = None
# For paths relative to cwd, use the cwd of the shell environment.
if args[0].startswith('.'):
exe_in_cwd = os.path.join(cmd_shenv.cwd, args[0])
if os.path.isfile(exe_in_cwd):
executable = exe_in_cwd
if not executable:
executable = lit.util.which(args[0], cmd_shenv.env['PATH'])
if not executable:
raise InternalShellError(j, '%r: command not found' % j.args[0])