[PATCH] D57533: lit: support long paths on Windows

Nico Weber via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 5 06:28:26 PST 2019


thakis added a comment.

In D57533#1379315 <https://reviews.llvm.org/D57533#1379315>, @ruiu wrote:

> In D57533#1379277 <https://reviews.llvm.org/D57533#1379277>, @compnerd wrote:
>
> > @ruiu, no unfortunately, not all the paths can be shortened in the swift test suite since it is such a heavy user of the clang modules, modules cache paths and module naming structure in clang is a problem.  Perhaps if we could make `%t` in lit be short and clang module names to be short, it might be possible to get the paths to a size that works?
>
>
> If you can do that, that's much more preferable solution than fixing the problem only at this location. I'd think if your test file get a very long pathname, this is not the only place that could break. For example, if you use `rm` on a test file and the test file gets a long pathname, that could fail.


(iirc we had to put a long-pathname-compatible rm on the chromium bots because that's already



================
Comment at: utils/lit/lit/TestRunner.py:620
+
+                    class SHFILEOPSTRUCTW(Structure):
+                        _fields_ = [
----------------
rnk wrote:
> This seems like a lot of ctypes code that would be better off written as a little llvm-rm utility in native C++ code, with a substitution from `\brm\b` to `llvm-rm`. Then, we'll have finally integrated a "safe rm" into LLVM, and we'll have a place we can add retry loops to try to satisfy hostile virus scanners.... it'll be great. =P WDYT?
Or we could stop having rm be a builtin again. You need unxutils or similar to run tests on Win anyhow, and there are rm implementations for Windows that can do this. That seems a lot simpler.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57533/new/

https://reviews.llvm.org/D57533





More information about the llvm-commits mailing list