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

Reply via email to