<div dir="ltr">I had considered this as well, and someone also asked the same question offline.  Here's the response I gave:<div>---</div><div><span style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px">The one thing that keeps me from being totally on board is that as part of this, I want to encourage people to think of ways to write simpler tests.  Do we really need all this crap running sed, awk, grep, piping through 4 different intermediate processes, copying files around, and more?  Maybe at that point you need to consider adding a new command line option to your tool specificially make it easier to test.  Or do soemthing differently.  Having a FULL command set available means people will just do whatever crazy thing they can think of instead of properly designing a test.  A good example of this is the clang-tidy test I mentioned in the original post.  I added an additional command line option to clang-tidy and rewrote that entire test purely with<span class="inbox-inbox-Apple-converted-space"> </span></span><a href="https://reviews.llvm.org/D23533#56e9c922" target="_blank" style="font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px">run lines</a><span style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px">.</span></div><span style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px">I think people should only be doing really simple shell activity from tests.</span><br class="inbox-inbox-Apple-interchange-newline"><div><font color="#212121" face="helvetica neue, helvetica, arial, sans-serif">--<br></font><div style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px"><br></div><div style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px">I agree it's much simpler.  On the other hand, maybe if we end up implementing all this stuff directly into lit it's a moot point anyway.  Implementing it in lit has the added advantage that it doesn't involve invoking a new process for every command, which is major performance bottleneck on windows when running the test suite.</div><div style="color:rgb(33,33,33);font-family:"helvetica neue",helvetica,arial,sans-serif;font-size:13px"><br></div><div class="gmail_quote"><div dir="ltr">On Tue, Aug 16, 2016 at 12:39 PM Alex Bradbury <<a href="mailto:asb@asbradbury.org">asb@asbradbury.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 16 August 2016 at 17:19, Zachary Turner via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> Well, It would be nice if we could remove the GnuWin32 dependency as well.<br>
> Lots of tests use grep, sed, cd, ln, or whatever.  Anyone who's ever tried<br>
> downloading and installing GnuWin32 knows what a pain it is.  It installs<br>
> programs called, for example, "link" which interfere with standard windows<br>
> tools, and puts them in your path.  There are other examples of this.  And<br>
> it's also HUGE.  And nobody can ever figure out how to download it<br>
> correctly.  Plus there are some minor differences in the tools behavior.<br>
><br>
> I'm proposing that we replace shell commands in tests with a tool that we<br>
> create which implements the most common shell commands and options.<br>
<br>
How about just using busybox-w32 for find, grep, sed, and other<br>
standard UNIX commands <a href="https://github.com/rmyorston/busybox-w32" rel="noreferrer" target="_blank">https://github.com/rmyorston/busybox-w32</a>. It's<br>
a single exe < 500KiB.<br>
<br>
Alex<br>
</blockquote></div></div></div>