Zach: this no longer works: % ./dotest.py -A x86_64 -C clang -v -t /.../packages/Python/lldbsuite/test/functionalities/completion
fill "..." in with your path to your lldb root. It is unable to find lldb because lldbtest_config.lldbExec isn't set correctly... > On Oct 28, 2015, at 12:21 PM, Zachary Turner via lldb-dev > <lldb-dev@lists.llvm.org> wrote: > > Committed r251544 to try to fix this. > > On Wed, Oct 28, 2015 at 12:18 PM Zachary Turner <ztur...@google.com> wrote: > It's saying "import: command not found". Do I need to put a `#!/usr/bin/env > python` or something at the top? I thought by virtue of having a .py > extension this would be handled, but maybe not. > > On Wed, Oct 28, 2015 at 12:16 PM Zachary Turner <ztur...@google.com> wrote: > We can set executable permissions on packages/Python/lldbsuite/test/dotest.py > for now. I suppose that's actually necessary for now since it does tget > executed indirectly by dosep. > > I plan to remove the need for this, and at the same time make it fail if you > try to run that file directly. Will that fix this problem? It's not clear > to me from looking at this log if that is the problem > > On Wed, Oct 28, 2015 at 11:50 AM Oleksiy Vyalov <ovya...@google.com> wrote: > Linux build bot is failing > http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/7895: > > /lldb-buildbot/lldbSlave/buildWorkingDir/scripts/../llvm/tools/lldb/test/dotest.py > --executable > /lldb-buildbot/lldbSlave/buildWorkingDir/scripts/../build/bin/lldb -A i386 -C > clang-3.5 -s logs-clang-3.5-i386 -u CXXFLAGS -u CFLAGS --channel "gdb-remote > packets" --channel "lldb all" > /lldb-buildbot/lldbSlave/buildWorkingDir/scripts/../llvm/tools/lldb/test/dotest.py: > line 1: import: command not found > /lldb-buildbot/lldbSlave/buildWorkingDir/scripts/../llvm/tools/lldb/test/dotest.py: > line 3: import: command not found > /lldb-buildbot/lldbSlave/buildWorkingDir/scripts/../llvm/tools/lldb/test/dotest.py: > line 5: syntax error: unexpected end of file > > Should we run packages/Python/lldbsuite/test/dotest.py instead of > test/dotest.py? > If yes, can we set executable permissions on > packages/Python/lldbsuite/test/dotest.py? > > On Wed, Oct 28, 2015 at 10:54 AM, Zachary Turner via lldb-dev > <lldb-dev@lists.llvm.org> wrote: > This is in right now (without my proposed change from previous email, > although I can make that as a followup since it's just cleanup) > > In any case, let me know if anything blows up. It took 35 minutes just to > commit, so hopefully any problems that arise can be fixed with localized > patches instead of revert. Although I'm still open to that if it's really > the only way to get things fixed. > > On Tue, Oct 27, 2015 at 8:12 PM Zachary Turner <ztur...@google.com> wrote: > Todd, I have one question. If I understand correctly, we currently run > dotest.py as a script, which imports dosep and calls some method in dosep, > and dosep then again exec's dotest. > > Can you think of a pythonic way to make this work under the new layout? To > be clear, I have it working, just not in a pythonic way. The problem is that > if we put code in lldbsuite's __init__.py, then this code won't be run when > we exec dotest, because we'll be running it as a script instead of importing > it as a package. __init__.py is a very handy way to run some per-package > initialization, so I'd like to be able to take advantage of it. > > The way I currently have it working is just write `import lldbsuite` at the > top of dotest.py, but that seems a little arbitrary that a file can't be > exec'ed unless it imports the package that it's supposed to be contained in. > > So to re-iterate: the problem is that under the new layout the user will run > lldb/test/dotest.py, but dosep will try to exec > lldb/packages/Python/lldbsuite/test/dotest.py, which is intended to be > imported as a package. > > What if we have dosep instead do this: > > # Execute the same script that the user originall ran from the command line, > # which under this new system will be lldb/test/dotest.py, even though dosep > # and the *real* dotest now reside in lldb/packages/Python/lldbsuite/test > import __main__ as main > exec main.__file__ > > Can you think of any problem with this? Another option is to use > sys.argv[0]. Not sure if there's any practical difference between the two > methods. > > On Tue, Oct 27, 2015 at 7:29 PM Zachary Turner <ztur...@google.com> wrote: > Ok, I'll do it tomorrow. Since it's a big code move I was a little worried > it would break someone's bot or the Xcode build, but I guess we can deal with > issues that pop up afterwards. > > On Tue, Oct 27, 2015 at 5:14 PM Jim Ingham <jing...@apple.com> wrote: > It seems like everybody is okay with the idea of this, so I don't see the > need for a review of the details of this stage. If you think there's > anything tricky call it out in words, otherwise I say just commit it. > > Jim > > > > On Oct 27, 2015, at 4:30 PM, Zachary Turner via lldb-dev > > <lldb-dev@lists.llvm.org> wrote: > > > > I have the first part of the patch in, and the second part of the patch > > (which is essentially just a whole-folder rename with a couple of fixups) > > ready to go. What's the best way to have this reviewed? Uploading a 7MB > > patch to Phabricator probably isn't going to work out very well. > > > > On Tue, Oct 27, 2015 at 1:40 PM Zachary Turner <ztur...@google.com> wrote: > > I think I have a way to split this into two smaller CLs. I'm testing this > > at the moment, if so it will allow the first CL to be most of the > > preparation for the rename without the rename, and then the second CL > > should literally just be a straight move with only 1-2 line code change. > > So I'll try to put this first CL up for review shortly. > > > > On Tue, Oct 27, 2015 at 12:49 PM Zachary Turner <ztur...@google.com> wrote: > > I've got a patch locally to make all of our Python stuff part of an lldb > > package called `lldbsuite`. Currently we've got a bunch of standalone > > scripts that live in various directories such as `lldb/test`, or > > `lldb/scripts`, and possibly some other locations, and this organization > > makes it hard to share code because it is incompatible with Python's > > built-in code reuse mechanism, which is its package system. > > > > The problem is, this patch is *big*. Functionally there weren't many major > > changes, but it renames the entire test directory. To be clear, it still > > leaves `test/dotest.py` in place, so nobody has to change their workflow or > > do anything differently. If you used to write "cd test && dotest.py" you > > can still do that. dotest.py is now just a 2 line wrapper around the > > package, so it looks like: > > > > import lldbsuite.test > > lldbsuite.test.run_suite() > > > > the advantage of this method is that lldbsuite can contain subpackages. It > > already contains one subpackage, which is lldbsuite.test, and I plan to > > move some of the Python code in `lldb/scripts` there as well, so that we > > have lldbsuite.scripts. Then we can add a third submodule, > > lldbsuite.shared, and now dotest can share code with scripts, and it gives > > us a nice place to put stuff that previously had been copied all around. > > > > It also gives us a nice way to perform module-wide initialization that we > > don't have to repeat in every single test, such as writing "import > > lldb_shared" at the top of every file, since that can be done as part of > > lldbsuite/__init__.py. > > > > > > In any case, I have this all working on my machine, but I would like to see > > if someone can try my patch out on other platforms. The size of the patch > > presents a problem though - it's over 7MB since it renames a very large > > directory. > > > > As usual, comments / concerns also welcome. > > _______________________________________________ > > lldb-dev mailing list > > lldb-dev@lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > > > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > > > > > -- > Oleksiy Vyalov | Software Engineer | ovya...@google.com > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev