[Lldb-commits] [lldb] r251678 - Some test cases that need the lldbExec path were failing because lldbExec was turning out to be None even though it was being validly set by dotest.py

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Fri Oct 30 08:32:58 PDT 2015


I'm also still a little confused why this worked before my patch.  How is
unittest2 importing the individual tests in a way that behaves differently
when dotest is a package (now) versus a standalone script (before)?

On Thu, Oct 29, 2015 at 11:31 PM Zachary Turner <zturner at google.com> wrote:

> Wow.  That's a weird problem.  Thanks for finding it!
>
> Would it work if we move the definition of the `lldbtest_config` class
> into lldbsuite/test/__init__.py?  This way the configuration should be part
> of the global package state of the lldbsuite.test package, which all the
> tests are already members of the same package, so they wouldn't even need
> to import anything (I think).
>
> On Thu, Oct 29, 2015 at 6:12 PM Enrico Granata via lldb-commits <
> lldb-commits at lists.llvm.org> wrote:
>
>> Author: enrico
>> Date: Thu Oct 29 20:09:54 2015
>> New Revision: 251678
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=251678&view=rev
>> Log:
>> Some test cases that need the lldbExec path were failing because lldbExec
>> was turning out to be None even though it was being validly set by dotest.py
>>
>> It turns out that lldbtest_config was being imported locally to
>> "lldbsuite.test" instead of globally, so when the test cases got
>> individually brought by a global import via __import__ by unittest2, they
>> did not see the lldbtest_config import, and ended up importing a new
>> separate copy of it, with lldbExec unset
>>
>> This is a simple hackaround that brings lldbtest_config to global
>> visibility and makes sure the configuration data is correctly shared
>>
>>
>> Modified:
>>     lldb/trunk/packages/Python/lldbsuite/test/dotest.py
>>
>> Modified: lldb/trunk/packages/Python/lldbsuite/test/dotest.py
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/dotest.py?rev=251678&r1=251677&r2=251678&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/packages/Python/lldbsuite/test/dotest.py (original)
>> +++ lldb/trunk/packages/Python/lldbsuite/test/dotest.py Thu Oct 29
>> 20:09:54 2015
>> @@ -21,6 +21,10 @@ for available options.
>>  """
>>
>>  from __future__ import print_function
>> +# this module needs to have global visibility, otherwise test cases
>> +# will import it anew in their local namespace, essentially losing access
>> +# to all the configuration data
>> +globals()['lldbtest_config'] = __import__('lldbtest_config')
>>
>>  import use_lldb_suite
>>
>> @@ -42,7 +46,6 @@ import test_results
>>  from test_results import EventBuilder
>>  import inspect
>>  import unittest2
>> -import lldbtest_config
>>  import test_categories
>>
>>  import six
>>
>>
>> _______________________________________________
>> lldb-commits mailing list
>> lldb-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20151030/3d9c4c9e/attachment.html>


More information about the lldb-commits mailing list