The fix seems to work - http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/7900 . Thank you.
On Wed, Oct 28, 2015 at 12:21 PM, Zachary Turner <ztur...@google.com> 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 >>>> >>> -- 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