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 <ztur...@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@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@lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>>
>
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to