<div dir="ltr">It looks like `lldbsuite.lldb_root` is not getting set correctly for you. Line 1070 of lldbsuite/test/dotest.py looks like this:<div><br></div><div> <span class="pygments-n" style="font-size:medium;color:rgb(0,0,0);font-family:monospace;line-height:normal;white-space:pre">lldbRootDirectory</span><span style="font-size:medium;color:rgb(0,0,0);font-family:monospace;line-height:normal;white-space:pre"> </span><span class="pygments-o" style="font-size:medium;color:rgb(102,102,102);font-family:monospace;line-height:normal;white-space:pre">=</span><span style="font-size:medium;color:rgb(0,0,0);font-family:monospace;line-height:normal;white-space:pre"> </span><span class="pygments-n" style="font-size:medium;color:rgb(0,0,0);font-family:monospace;line-height:normal;white-space:pre">lldbsuite</span><span class="pygments-o" style="font-size:medium;color:rgb(102,102,102);font-family:monospace;line-height:normal;white-space:pre">.</span><span class="pygments-n" style="font-size:medium;color:rgb(0,0,0);font-family:monospace;line-height:normal;white-space:pre">lldb_root</span></div><div><span class="pygments-n" style="font-size:medium;color:rgb(0,0,0);font-family:monospace;line-height:normal;white-space:pre"><br></span></div><div><span class="pygments-n">`lldbsuite.lldb_root` is set in `packages/Python/lldbsuite/<span style="line-height:1.5">__init__.py` whenever someone writes `import lldbsuite`. The import must have been successful otherwise you would have gotten a stacktrace pointing to this line with a message like "unknown package lldbsuite", so I guess we need to figure out why the code in __init__.py is not working correctly. Can you add a print statement in __init__.py after it sets lldb_root, and another print statement at the above line of code to see what the value of lldb_root is in both cases?</span><br></span></div><div><span class="pygments-n"><br></span></div><div><span class="pygments-n">You might also try applying <a href="http://reviews.llvm.org/D14157">http://reviews.llvm.org/D14157</a> and see if that makes things better.</span></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Oct 28, 2015 at 10:40 PM Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Can you give me a stack trace?</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Oct 28, 2015 at 10:37 PM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Shoot, I'm at the LLVM Developers Conference tomorrow and Friday as well. Let me eyeball the code and see if I can figure out what might be wrong.</div><div dir="ltr"><div><br></div><div><br><div class="gmail_quote"><div dir="ltr">On Wed, Oct 28, 2015 at 4:25 PM Greg Clayton <<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Zach: this no longer works:<br>
<br>
% ./dotest.py -A x86_64 -C clang -v -t /.../packages/Python/lldbsuite/test/functionalities/completion<br>
<br>
fill "..." in with your path to your lldb root.<br>
<br>
It is unable to find lldb because lldbtest_config.lldbExec isn't set correctly...<br>
<br>
<br>
> On Oct 28, 2015, at 12:21 PM, Zachary Turner via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a>> wrote:<br>
><br>
> Committed r251544 to try to fix this.<br>
><br>
> On Wed, Oct 28, 2015 at 12:18 PM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
> 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.<br>
><br>
> On Wed, Oct 28, 2015 at 12:16 PM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
> 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.<br>
><br>
> 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<br>
><br>
> On Wed, Oct 28, 2015 at 11:50 AM Oleksiy Vyalov <<a href="mailto:ovyalov@google.com" target="_blank">ovyalov@google.com</a>> wrote:<br>
> Linux build bot is failing <a href="http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/7895" rel="noreferrer" target="_blank">http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/7895</a>:<br>
><br>
> /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"<br>
> /lldb-buildbot/lldbSlave/buildWorkingDir/scripts/../llvm/tools/lldb/test/dotest.py: line 1: import: command not found<br>
> /lldb-buildbot/lldbSlave/buildWorkingDir/scripts/../llvm/tools/lldb/test/dotest.py: line 3: import: command not found<br>
> /lldb-buildbot/lldbSlave/buildWorkingDir/scripts/../llvm/tools/lldb/test/dotest.py: line 5: syntax error: unexpected end of file<br>
><br>
> Should we run packages/Python/lldbsuite/test/dotest.py instead of test/dotest.py?<br>
> If yes, can we set executable permissions on packages/Python/lldbsuite/test/dotest.py?<br>
><br>
> On Wed, Oct 28, 2015 at 10:54 AM, Zachary Turner via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a>> wrote:<br>
> 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)<br>
><br>
> 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.<br>
><br>
> On Tue, Oct 27, 2015 at 8:12 PM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
> 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.<br>
><br>
> 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.<br>
><br>
> 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.<br>
><br>
> 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.<br>
><br>
> What if we have dosep instead do this:<br>
><br>
> # Execute the same script that the user originall ran from the command line,<br>
> # which under this new system will be lldb/test/dotest.py, even though dosep<br>
> # and the *real* dotest now reside in lldb/packages/Python/lldbsuite/test<br>
> import __main__ as main<br>
> exec main.__file__<br>
><br>
> 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.<br>
><br>
> On Tue, Oct 27, 2015 at 7:29 PM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
> 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.<br>
><br>
> On Tue, Oct 27, 2015 at 5:14 PM Jim Ingham <<a href="mailto:jingham@apple.com" target="_blank">jingham@apple.com</a>> wrote:<br>
> 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.<br>
><br>
> Jim<br>
><br>
><br>
> > On Oct 27, 2015, at 4:30 PM, Zachary Turner via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a>> wrote:<br>
> ><br>
> > 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.<br>
> ><br>
> > On Tue, Oct 27, 2015 at 1:40 PM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
> > 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.<br>
> ><br>
> > On Tue, Oct 27, 2015 at 12:49 PM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
> > 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.<br>
> ><br>
> > 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:<br>
> ><br>
> > import lldbsuite.test<br>
> > lldbsuite.test.run_suite()<br>
> ><br>
> > 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.<br>
> ><br>
> > 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.<br>
> ><br>
> ><br>
> > 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.<br>
> ><br>
> > As usual, comments / concerns also welcome.<br>
> > _______________________________________________<br>
> > lldb-dev mailing list<br>
> > <a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
> > <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
><br>
><br>
> _______________________________________________<br>
> lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
><br>
><br>
><br>
><br>
> --<br>
> Oleksiy Vyalov | Software Engineer | <a href="mailto:ovyalov@google.com" target="_blank">ovyalov@google.com</a><br>
> _______________________________________________<br>
> lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
<br>
</blockquote></div></div></div></blockquote></div></blockquote></div>