[Lldb-commits] [PATCH] D18598: Don't vary debug info for lldb-server tests

Todd Fiala via lldb-commits lldb-commits at lists.llvm.org
Wed Mar 30 08:57:22 PDT 2016


LGTM, thanks for getting to that, Pavel!

On Wednesday, March 30, 2016, Pavel Labath <labath at google.com> wrote:

> labath created this revision.
> labath added reviewers: tberghammer, tfiala.
> labath added a subscriber: lldb-commits.
>
> Debug info is used only by the client and lldb-server tests do not even
> have the client component
> running, as they communicate with the server directly. Therefore, running
> the tests for each
> debug info type is unnecessarry.
>
> This adds general ability to mark a test class as not dependent on debug
> info, and marks all
> lldb-server tests as such.
>
> http://reviews.llvm.org/D18598
>
> Files:
>   packages/Python/lldbsuite/test/lldbtest.py
>   packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
>
> Index:
> packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
> ===================================================================
> --- packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
> +++ packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
> @@ -29,6 +29,8 @@
>
>  class GdbRemoteTestCaseBase(TestBase):
>
> +    NO_DEBUG_INFO_TESTCASE = True
> +
>      _TIMEOUT_SECONDS = 7
>
>      _GDBREMOTE_KILL_PACKET = "$k#6b"
> Index: packages/Python/lldbsuite/test/lldbtest.py
> ===================================================================
> --- packages/Python/lldbsuite/test/lldbtest.py
> +++ packages/Python/lldbsuite/test/lldbtest.py
> @@ -1422,9 +1422,15 @@
>  # Metaclass for TestBase to change the list of test metods when a new
> TestCase is loaded.
>  # We change the test methods to create a new test method for each test
> for each debug info we are
>  # testing. The name of the new test method will be
> '<original-name>_<debug-info>' and with adding
> -# the new test method we remove the old method at the same time.
> +# the new test method we remove the old method at the same time. This
> functionality can be
> +# supressed by at test case level setting the class attribute
> NO_DEBUG_INFO_TESTCASE or at test
> +# level by using the decorator @no_debug_info_test.
>  class LLDBTestCaseFactory(type):
>      def __new__(cls, name, bases, attrs):
> +        original_testcase = super(LLDBTestCaseFactory, cls).__new__(cls,
> name, bases, attrs)
> +        if original_testcase.NO_DEBUG_INFO_TESTCASE:
> +            return original_testcase
> +
>          newattrs = {}
>          for attrname, attrvalue in attrs.items():
>              if attrname.startswith("test") and not getattr(attrvalue,
> "__no_debug_info_test__", False):
> @@ -1526,6 +1532,10 @@
>            Mac OS X implementation is located in plugins/darwin.py.
>      """
>
> +    # Subclasses can set this to true (if they don't depend on debug
> info) to avoid running the
> +    # test multiple times with various debug info types.
> +    NO_DEBUG_INFO_TESTCASE = False
> +
>      # Maximum allowed attempts when launching the inferior process.
>      # Can be overridden by the LLDB_MAX_LAUNCH_COUNT environment variable.
>      maxLaunchCount = 3;
>
>
>

-- 
-Todd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160330/67a133e3/attachment.html>


More information about the lldb-commits mailing list