[lldb-dev] Running tests on windows?
Zachary Turner
zturner at google.com
Thu Mar 19 17:20:31 PDT 2015
Heh. It doesn't do anything special. This is what it looks like:
cmake -G %1 -DLLDB_TEST_DEBUG_TEST_CRASHES=1
-DPYTHON_LIBRARY=D:\python_src\Python-2.7.8\PCbuild\python27_d.lib
-PYTHON_EXECUTABLE=D:\python_src\Python-2.7.8\PCbuild\python_d.exe
-DPYTHON_INCLUDE_DIR=D:\python_src\Python-2.7.8\Include
-DLLDB_TEST_COMPILER=D:\src\llvmbuild\ninja\bin\clang.exe ..\..\llvm
You can probably remove the LLDB_TEST_DEBUG_TEST_CRASHES unless you're
interested in fixing test failures with core LLDB on Windows
functionality. Although I'm here to help if you are interested in doing
that :) By setting it to 1 it will cause tests that crash to generate a
crash dialog so you can attach your favorite JIT debugger. Default is 0,
so that tests silently fail.
The %1 is so I can use both Ninja and "Visual Studio 12" generators. I run
my builds with the former since Ninja compiles faster than MSBuild, and I
use the latter just for having a Visual Studio solution opened that I can
work in (they need to be generated into different folders though obviously)
Also, I'm not sure what you mean by "external lldb"?
On Thu, Mar 19, 2015 at 5:15 PM Chuck Ries <Chuck.Ries at microsoft.com> wrote:
> Additionally, do you do an external lldb on Windows? That seemed to work
> several months ago but was broken when I tried it today.
>
>
>
> *From:* Zachary Turner [mailto:zturner at google.com]
> *Sent:* Thursday, March 19, 2015 5:13 PM
>
>
> *To:* Chuck Ries; lldb-dev at cs.uiuc.edu
> *Subject:* Re: [lldb-dev] Running tests on windows?
>
>
>
> Yea I had issues with the CMake GUI a while ago as well. I wrote a batch
> file that just regenerates for me, and it seems to work better.
>
>
>
> On Thu, Mar 19, 2015 at 5:11 PM Chuck Ries <Chuck.Ries at microsoft.com>
> wrote:
>
> I have been using the cmake GUI and it seems to have some quirks. For
> example, if I added the PYTHON_EXECUTABLE entry and then generated, it
> would get dropped. I have cleaned and reconfigured my cmake build with your
> suggestions. Thanks!
>
>
>
> *From:* Zachary Turner [mailto:zturner at google.com]
> *Sent:* Thursday, March 19, 2015 5:00 PM
>
>
> *To:* Chuck Ries; lldb-dev at cs.uiuc.edu
> *Subject:* Re: [lldb-dev] Running tests on windows?
>
>
>
> Ahh actually you do have the compiler specified, and it is cl.exe. So
> yea, this is definitely wrong and I think it actually the problem for two
> reasons. The first reason is what I mentioned about the test suite not
> working with cl.exe at all (because the Makefiles that build test programs
> assume gcc-style command line options), and for a second reason because
> there's a space in the path, and dosep doesn't support that (although it
> could be made to). So if you fix the LLDB_TEST_COMPILER issue and set it
> to clang, that should fix your problem.
>
>
>
> On Thu, Mar 19, 2015 at 4:55 PM Zachary Turner <zturner at google.com> wrote:
>
> Are you sure you set PYTHON_EXECUTABLE to python_d.exe? Because it's
> using python.exe on your command line.
>
> I notice you also don't have a test compiler specified. I assume you're
> building with MSVC, which means you've run vcvarsall, which means that the
> test suite will try to use cl.exe to compile. This also won't work, you
> will need to use clang as the compiler. Since you've already built clang
> as part of building LLDB, this shouldn't be too difficult, you just need to
> set a CMake variable to use clang. I should probably make the CMake a
> little bit smarter and attempt to find this automatically. I'll add a note
> to do that soon. In the meantime set -DLLDB_TEST_COMPILER=
> C:/Users/chuckr/source/build_llvm_debug/bin/clang.exe
>
>
>
> On Thu, Mar 19, 2015 at 4:54 PM Chuck Ries <Chuck.Ries at microsoft.com>
> wrote:
>
> I am doing this on Windows 8.1, running from command prompt. I have
> specified all three of those python cmake options to the debug versions
> that I built.
>
>
>
> *From:* Zachary Turner [mailto:zturner at google.com]
> *Sent:* Thursday, March 19, 2015 4:46 PM
> *To:* Chuck Ries; lldb-dev at cs.uiuc.edu
> *Subject:* Re: [lldb-dev] Running tests on windows?
>
>
>
> Also, are you using Cygwin? (It doesn't look like it from your command
> line, but as cygwin is a completely untested path, I have no idea what will
> happen if you use it)
>
>
>
> On Thu, Mar 19, 2015 at 4:42 PM Zachary Turner <zturner at google.com> wrote:
>
> I run tests on Windows and if something is wrong then I definitely want
> to fix it.
>
>
>
> That said, I've never seen these particular failures before. I will say
> that the test suite only passes about 50% on Windows, but at the end you
> will see a lot of failures. But they won't be these failures, they will be
> actual test failures like couldn't set a watchpoint.
>
>
>
> One thing that seems suspicious to me from looking at your command line is
> that, although you appear to have built python from source (which is
> correct), LLDB is finding a *release* version of Python. If you are
> building a Debug version of LLDB, this won't work. LLDB needs to find a
> debug version of python. I don't think that's the actual issue you're
> experiencing here though, but it might be. To fix this I recommend
> explicitly specifying both PYTHON_EXECUTABLE, PYTHON_LIBRARY, and
> PYTHON_INCLUDE_DIR on your CMake command line.
>
>
>
> The next thing I would do is add a line to dosep.py that prints out the
> command line it uses for dotest.py. dosep.py is a lightweight shim that
> just spawns many instances of dotest.py in different processes, and it seems
> to be forming the command line incorrectly. So the key is going to see
> what command line it's using for dotest.py.
>
>
>
> What version of Windows are you using if I might ask? And are you running
> it from a cmd prompt or a Powershell prompt?
>
>
>
> On Thu, Mar 19, 2015 at 4:31 PM Chuck Ries <Chuck.Ries at microsoft.com>
> wrote:
>
> Does anybody run tests on Windows? I was able to build lldb on windows
> using cmake + ninja by following the instructions at
> http://lldb.llvm.org/build.html#BuildingLldbOnWindows
>
>
>
> Running nina check-lldb however fails:
>
>
>
> [1/1] cmd.exe /C "cd /D
> C:\Users\chuckr\source\build_llvm_debug\tools\lldb\test &&
> C:\Users\chuckr\source\Python-2.7.8\PCbuild\python.exe
> c:/Users/chuckr/source/llvm/tools/lldb/test/dosep.py -o "-q --arch=i686
> --executable C:/Users/chuckr/source/build_llvm_debug/bin/lldb.exe -s
> C:/Users/chuckr/source/build_llvm_debug/lldb-test-traces -u CXXFLAGS -u
> CFLAGS -C C:/Program Files (x86)/Microsoft Visual Studio
> 12.0/VC/bin/cl.exe""
>
> FAILED: cmd.exe /C "cd /D
> C:\Users\chuckr\source\build_llvm_debug\tools\lldb\test &&
> C:\Users\chuckr\source\Python-2.7.8\PCbuild\python.exe
> c:/Users/chuckr/source/llvm/tools/lldb/test/dosep.py -o "-q --arch=i686
> --executable C:/Users/chuckr/source/build_llvm_debug/bin/lldb.exe -s
> C:/Users/chuckr/source/build_llvm_debug/lldb-test-traces -u CXXFLAGS -u
> CFLAGS -C C:/Program Files (x86)/Microsoft Visual Studio
> 12.0/VC/bin/cl.exe""
>
> usage: dotest.py [-h] [-A arch] [-C compiler] [-E extra-flags] [-D]
>
> [-N {dwarf,dsym}] [-a] [+a] [+b] [-b blacklist]
>
> [-f filterspec] [-g] [-l] [-m] [+m] [-p pattern]
>
> [-X directory] [-G category] [--skip-category category]
>
> [-c config-file] [--framework framework-path]
>
> [--executable executable-path] [--libcxx directory]
>
> [-e benchmark-exe] [-k command] [-R dir] [-r dir] [-s
> name]
>
> [-x breakpoint-spec] [-y count] [-# sharp]
>
> [--platform-name platform-name] [--platform-url
> platform-url]
>
> [--platform-working-dir platform-working-dir] [-d] [-F]
> [-i]
>
> [-n] [-P] [-q] [-S] [-t] [-u variable] [--env variable]
> [-v]
>
> [-w] [-T] [--enable-crash-dialog]
> [--show-inferior-console]
>
> [test-dir [test-dir ...]]
>
> dotest.py: error: unrecognized arguments:
> c:\Users\chuckr\source\llvm\tools\lldb\test\api\check_public_api_headers
>
> usage: dotest.py [-h] [-A arch] [-C compiler] [-E extra-flags] [-D]
>
> [-N {dwarf,dsym}] [-a] [+a] [+b] [-b blacklist]
>
> [-f filterspec] [-g] [-l] [-m] [+m] [-p pattern]
>
> [-X directory] [-G category] [--skip-category category]
>
> [-c config-file] [--framework framework-path]
>
> [--executable executable-path] [--libcxx directory]
>
> [-e benchmark-exe] [-k command] [-R dir] [-r dir] [-s
> name]
>
> [-x breakpoint-spec] [-y count] [-# sharp]
>
> [--platform-name platform-name] [--platform-url
> platform-url]
>
> [--platform-working-dir platform-working-dir] [-d] [-F]
> [-i]
>
> [-n] [-P] [-q] [-S] [-t] [-u variable] [--env variable]
> [-v]
>
> [-w] [-T] [--enable-crash-dialog]
> [--show-inferior-console]
>
> [test-dir [test-dir ...]]
>
> dotest.py: error: unrecognized arguments:
> c:\Users\chuckr\source\llvm\tools\lldb\test\functionalities\breakpoint\cpp
>
> usage: dotest.py [-h] [-A arch] [-C compiler] [-E extra-flags] [-D]
>
> [-N {dwarf,dsym}] [-a] [+a] [+b] [-b blacklist]
>
> [-f filterspec] [-g] [-l] [-m] [+m] [-p pattern]
>
> [-X directory] [-G category] [--skip-category category]
>
> [-c config-file] [--framework framework-path]
>
> [--executable executable-path] [--libcxx directory]
>
> [-e benchmark-exe] [-k command] [-R dir] [-r dir] [-s
> name]
>
> [-x breakpoint-spec] [-y count] [-# sharp]
>
> [--platform-name platform-name] [--platform-url
> platform-url]
>
> [--platform-working-dir platform-working-dir] [-d] [-F]
> [-i]
>
> [-n] [-P] [-q] [-S] [-t] [-u variable] [--env variable]
> [-v]
>
> [-w] [-T] [--enable-crash-dialog]
> [--show-inferior-console]
>
> [test-dir [test-dir ...]]
>
> dotest.py: error: unrecognized arguments:
> c:\Users\chuckr\source\llvm\tools\lldb\test\expression_command\persistent_types
>
> usage: dotest.py [-h] [-A arch] [-C compiler] [-E extra-flags] [-D]
>
> [-N {dwarf,dsym}] [-a] [+a] [+b] [-b blacklist]
>
> [-f filterspec] [-g] [-l] [-m] [+m] [-p pattern]
>
> [-X directory] [-G category] [--skip-category category]
>
> [-c config-file] [--framework framework-path]
>
> [--executable executable-path] [--libcxx directory]
>
> [-e benchmark-exe] [-k command] [-R dir] [-r dir] [-s
> name]
>
> [-x breakpoint-spec] [-y count] [-# sharp]
>
> [--platform-name platform-name] [--platform-url
> platform-url]
>
> [--platform-working-dir platform-working-dir] [-d] [-F]
> [-i]
>
> [-n] [-P] [-q] [-S] [-t] [-u variable] [--env variable]
> [-v]
>
> [-w] [-T] [--enable-crash-dialog]
> [--show-inferior-console]
>
> [test-dir [test-dir ...]]
>
> dotest.py: error: unrecognized arguments:
> c:\Users\chuckr\source\llvm\tools\lldb\test\functionalities\data-formatter\data-formatter-enum-format
>
> usage: dotest.py [-h] [-A arch] [-C compiler] [-E extra-flags] [-D]
>
> [-N {dwarf,dsym}] [-a] [+a] [+b] [-b blacklist]
>
> [-f filterspec] [-g] [-l] [-m] [+m] [-p pattern]
>
> [-X directory] [-G category] [--skip-category category]
>
> [-c config-file] [--framework framework-path]
>
> [--executable executable-path] [--libcxx directory]
>
> [-e benchmark-exe] [-k command] [-R dir] [-r dir] [-s
> name]
>
> [-x breakpoint-spec] [-y count] [-# sharp]
>
> [--platform-name platform-name] [--platform-url
> platform-url]
>
> [--platform-working-dir platform-working-dir] [-d] [-F]
> [-i]
>
> [-n] [-P] [-q] [-S] [-t] [-u variable] [--env variable]
> [-v]
>
> [-w] [-T] [--enable-crash-dialog]
> [--show-inferior-console]
>
> [test-dir [test-dir ...]]
>
> ……
>
>
>
>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150320/91e0637f/attachment.html>
More information about the lldb-dev
mailing list