On Sun, Oct 30, 2016 at 9:57 PM Chris Bieneman via lldb-commits < lldb-commits@lists.llvm.org> wrote:
> > Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py?rev=285542&r1=285541&r2=285542&view=diff > > ============================================================================== > --- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py (original) > +++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Sun Oct 30 > 23:48:19 2016 > @@ -1848,6 +1848,33 @@ class TestBase(Base): > folder = os.path.dirname(folder) > continue > > + def generateSource(self, source): > + template = source + '.template' > + temp = os.path.join(os.getcwd(), template) > + with open(temp, 'r') as f: > + content = f.read() > + > + public_api_dir = os.path.join( > + os.environ["LLDB_SRC"], "include", "lldb", "API") > + > + # Look under the include/lldb/API directory and add #include > statements > + # for all the SB API headers. > + public_headers = os.listdir(public_api_dir) > + # For different platforms, the include statement can vary. > + if self.hasDarwinFramework(): > + include_stmt = "'#include <%s>' % os.path.join('LLDB', > header)" > + else: > + include_stmt = "'#include <%s>' % > os.path.join(public_api_dir, header)" > + list = [eval(include_stmt) for header in public_headers if ( > + header.startswith("SB") and header.endswith(".h"))] > + includes = '\n'.join(list) > + new_content = content.replace('%include_SB_APIs%', includes) > + src = os.path.join(os.getcwd(), source) > + with open(src, 'w') as f: > + f.write(new_content) > + > + self.addTearDownHook(lambda: os.remove(src)) > + > The non hasDarwinFramework codepath is broken here, and I don't believe it to be a Windows specific issue. I'm getting the following error in multiple tests. Traceback (most recent call last): File "C:\src\llvm\tools\lldb\packages\Python\lldbsuite\test\functionalities\plugins\commands\TestPluginCommands.py", line 23, in setUp self.generateSource('plugin.cpp') File "C:\src\llvm\tools\lldb\packages\Python\lldbsuite\test\lldbtest.py", line 1868, in generateSource list = [eval(include_stmt) for header in public_headers if ( File "C:\src\llvm\tools\lldb\packages\Python\lldbsuite\test\lldbtest.py", line 1869, in <listcomp> header.startswith("SB") and header.endswith(".h"))] File "<string>", line 1, in <module> *NameError: name 'public_api_dir' is not defined* Config=i686-C:\src\llvmbuild\ninja_release\bin\clang.exe I'm hypothesizing that the problem is that from inside of a list comprehension, your set of locals is not the same as outside of the list comprehension, and so the eval statement does not see the variable `public_api_dir`. Is there any way you could provide a fix for this?
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits