[llvm-dev] RFC: A cross platform way of using shell commands in lit tests

Reid Kleckner via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 16 11:07:06 PDT 2016

On Tue, Aug 16, 2016 at 10:09 AM, Greg Bedwell via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Anecdotally, most of the times I've seen people add "REQUIRES: shell" on
>> a test they really meant "disable on windows". I think/hope that's
>> usually temporary while they investigate problems, but it might explain
>> why so many tests say they require shell when they don't.
> In at least one case I can think of ("clang/test/Format/style-on-command-line.cpp")
> the "REQUIRES: shell" is there to work around annoying intermittent
> failures on Windows where 'rm' was failing with permission denied errors
> just occasionally enough to be a problem.  I've definitely seen this happen
> in a number of other places previously although I can't think whether this
> affects any other lit tests off-hand, but I know that personally I've had
> to implement 'robust rm' (basically, keep on trying until the error goes
> away on its own) on Windows in a number of different systems to work around
> this sort of problem before.  Replacing gnuwin32 with something where we
> could easily implement something like 'robust <cmd>' versions for Windows
> when we encounter these sorts of issues would be fantastic, so I'm
> definitely in favour of removing the dependency.

You can use "REQUIRES: can-remove-opened-file" to express this requirement
more precisely.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160816/5e2d8b41/attachment.html>

More information about the llvm-dev mailing list