[lldb] Modify the `skipIfRemote` decorator so we can skip all PExpect tests.
authorJonas Devlieghere <jonas@devlieghere.com>
Wed, 5 Aug 2020 22:20:53 +0000 (15:20 -0700)
committerJonas Devlieghere <jonas@devlieghere.com>
Wed, 5 Aug 2020 22:27:34 +0000 (15:27 -0700)
This patch modifies the skipIfRemote decorator so it can apply to a
whole class, which allows us to skip all PExpect tests as a whole.

Differential revision: https://reviews.llvm.org/D85365

lldb/packages/Python/lldbsuite/test/decorators.py
lldb/packages/Python/lldbsuite/test/lldbpexpect.py
lldb/test/API/commands/expression/multiline-completion/TestMultilineCompletion.py
lldb/test/API/commands/gui/basic/TestGuiBasic.py
lldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py
lldb/test/API/commands/gui/breakpoints/TestGuiBreakpoints.py
lldb/test/API/driver/batch_mode/TestBatchMode.py

index 873952e..a472e1c 100644 (file)
@@ -502,9 +502,7 @@ def skipIfOutOfTreeDebugserver(func):
 
 def skipIfRemote(func):
     """Decorate the item to skip tests if testing remotely."""
-    def is_remote():
-        return "skip on remote platform" if lldb.remote_platform else None
-    return skipTestIfFn(is_remote)(func)
+    return unittest2.skipIf(lldb.remote_platform, "skip on remote platform")(func)
 
 
 def skipIfNoSBHeaders(func):
index d599bc3..86216ec 100644 (file)
@@ -11,6 +11,7 @@ import six
 import lldb
 from .lldbtest import *
 from . import lldbutil
+from lldbsuite.test.decorators import *
 
 if sys.platform.startswith('win32'):
     # llvm.org/pr22274: need a pexpect replacement for windows
@@ -19,6 +20,7 @@ if sys.platform.startswith('win32'):
 else:
     import pexpect
 
+    @skipIfRemote
     class PExpectTest(TestBase):
 
         NO_DEBUG_INFO_TESTCASE = True
index 9b2b712..e4935d0 100644 (file)
@@ -14,7 +14,6 @@ class MultilineCompletionTest(PExpectTest):
     # PExpect uses many timeouts internally and doesn't play well
     # under ASAN on a loaded machine..
     @skipIfAsan
-    @skipIfRemote  # test is written to explicitly "run" the binary
     @skipIfEditlineSupportMissing
     def test_basic_completion(self):
         """Test that we can complete a simple multiline expression"""
index 2dcc7d0..d501b26 100644 (file)
@@ -15,7 +15,6 @@ class BasicGuiCommandTest(PExpectTest):
     # under ASAN on a loaded machine..
     @skipIfAsan
     @skipIfCursesSupportMissing
-    @skipIfRemote # "run" command will not work correctly for remote debug
     def test_gui(self):
         self.build()
 
index 5c3d0d7..ed5daf5 100644 (file)
@@ -15,7 +15,6 @@ class TestGuiBasicDebugCommandTest(PExpectTest):
     # under ASAN on a loaded machine..
     @skipIfAsan
     @skipIfCursesSupportMissing
-    @skipIfRemote # "run" command will not work correctly for remote debug
     @expectedFailureAll(archs=["aarch64"], oslist=["linux"])
     def test_gui(self):
         self.build()
index 13f5e13..3d075c0 100644 (file)
@@ -15,7 +15,6 @@ class TestGuiBasicDebugCommandTest(PExpectTest):
     # under ASAN on a loaded machine..
     @skipIfAsan
     @skipIfCursesSupportMissing
-    @skipIfRemote # "run" command will not work correctly for remote debug
     def test_gui(self):
         self.build()
 
index 9639c70..df6cc87 100644 (file)
@@ -16,7 +16,6 @@ class DriverBatchModeTest(PExpectTest):
     mydir = TestBase.compute_mydir(__file__)
     source = 'main.c'
 
-    @skipIfRemote  # test not remote-ready llvm.org/pr24813
     @expectedFlakeyFreeBSD("llvm.org/pr25172 fails rarely on the buildbot")
     def test_batch_mode_run_crash(self):
         """Test that the lldb driver's batch mode works correctly."""
@@ -47,7 +46,6 @@ class DriverBatchModeTest(PExpectTest):
         self.expect_prompt()
         self.expect("frame variable touch_me_not", substrs='(char *) touch_me_not')
 
-    @skipIfRemote  # test not remote-ready llvm.org/pr24813
     @expectedFlakeyFreeBSD("llvm.org/pr25172 fails rarely on the buildbot")
     def test_batch_mode_run_exit(self):
         """Test that the lldb driver's batch mode works correctly."""
@@ -77,7 +75,6 @@ class DriverBatchModeTest(PExpectTest):
         import pexpect
         child.expect(pexpect.EOF)
 
-    @skipIfRemote
     @expectedFlakeyFreeBSD("llvm.org/pr25172 fails rarely on the buildbot")
     def test_batch_mode_launch_stop_at_entry(self):
         """Test that the lldb driver's batch mode works correctly for process launch."""
@@ -101,7 +98,7 @@ class DriverBatchModeTest(PExpectTest):
         child.expect_exact("continue")
         # The App should have not have crashed:
         child.expect_exact("Got there on time and it did not crash.")
-        
+
         # Then lldb should exit.
         child.expect_exact("exited")
         import pexpect
@@ -112,7 +109,6 @@ class DriverBatchModeTest(PExpectTest):
             self.victim.close()
             self.victim = None
 
-    @skipIfRemote  # test not remote-ready llvm.org/pr24813
     @expectedFlakeyFreeBSD("llvm.org/pr25172 fails rarely on the buildbot")
     @expectedFailureNetBSD
     def test_batch_mode_attach_exit(self):