Use os.path.realpath when tracking the cwd.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 30 Mar 2017 21:05:31 +0000 (21:05 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 30 Mar 2017 21:05:31 +0000 (21:05 +0000)
This is needed by TestCases/Posix/coverage-direct.cc

The problem is that the test does:

mkdir <dir>
cd <dir>
cd ..
rm -rf <dir>
<more commands>

the current directory currently looks like "/.../<dir>/../" which
doesn't exist when dir is deleted.

at some point we should probably switch to using the os current
directory (specially if we want to add subshell), but this is a small
incremental improvement.

llvm-svn: 299113

llvm/utils/lit/lit/TestRunner.py

index 894159e..2e6c37c 100644 (file)
@@ -252,7 +252,7 @@ def _executeShCmd(cmd, shenv, results, timeoutHelper):
         if os.path.isabs(newdir):
             shenv.cwd = newdir
         else:
-            shenv.cwd = os.path.join(shenv.cwd, newdir)
+            shenv.cwd = os.path.realpath(os.path.join(shenv.cwd, newdir))
         # The cd builtin always succeeds. If the directory does not exist, the
         # following Popen calls will fail instead.
         return 0