Running the Clang tests on windows

There are problems running the tests on Windows. Even though the are cmake files in place to generate project files for them, there are some Windows-specific problems in this and the underlying Python files. I did a little digging into it, and there are some problems with encountered “C:”, and perhaps '/'s ending up in the output script files. (I hacked the .vcproj files directly to get rid of the “C:”'s, but then still had other errors, listed in the enclosed file.)

It’s pretty clear being able to run the tests is important for Windows-based clang developer wannabees like me, so I’d like to get this working. I’m prepared to try to do this, but I thought I’d better ping everyone to see if someone isn’t already working on this. I don’t know either Python or cmake, so if someone better prepared is willing to have a whack at it instead, let me know soon.

-John

TestsBuildError.txt (1.83 KB)

Hi John,

I agree this is an important problem.

I'll try and take a quick look by Monday to see if there are any
obvious quick fixes I can make. I anticipate that there will be some
larger problems than just paths; since the tests historically amount
to shell scripts, it is very easy for unix-isms to be in them. Even if
the test runner itself is portable, many of the tests may not be.

- Daniel

I did some work on the test runner tonight and it is starting to work
on Windows now. There are lots of issues to resolve, as expected:

1. clang doesn't have the right headers for MSVC. On my system it
finds stdio.h from MinGW, which doesn't work. cmake also initially
found python from MinGW, which completely doesn't work.

2. I'm getting various crashes or unexpected behavior. I expect that a
lot of these are real bugs. However, its annoying as stands because
you have to cancel a little dialog box every time clang crashes. Maybe
we should disable the dialog in clang/clang-cc.

3. There seems to be a problem with llvm::sys::ExecuteAndWait, it
looks like any test that uses the driver to call clang-cc fails due to
this.

4. Lots of tests fail due to the extra utilities being used (not,
count, etc.). I do happen to have grep on my system, but most Windows
users wouldn't.

The final tally was 352 failures out of 1391 tests. It's not
particularly speedy (~4m), but my PC is quite old...

- Daniel