From df46f174db5bbedb66d77041308d48e701c77e96 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Wed, 5 Aug 2020 15:20:53 -0700 Subject: [PATCH] [lldb] Modify the `skipIfRemote` decorator so we can skip all PExpect tests. 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 | 4 +--- lldb/packages/Python/lldbsuite/test/lldbpexpect.py | 2 ++ .../expression/multiline-completion/TestMultilineCompletion.py | 1 - lldb/test/API/commands/gui/basic/TestGuiBasic.py | 1 - lldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py | 1 - lldb/test/API/commands/gui/breakpoints/TestGuiBreakpoints.py | 1 - lldb/test/API/driver/batch_mode/TestBatchMode.py | 6 +----- 7 files changed, 4 insertions(+), 12 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index 873952e..a472e1c 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -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): diff --git a/lldb/packages/Python/lldbsuite/test/lldbpexpect.py b/lldb/packages/Python/lldbsuite/test/lldbpexpect.py index d599bc3..86216ec 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbpexpect.py +++ b/lldb/packages/Python/lldbsuite/test/lldbpexpect.py @@ -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 diff --git a/lldb/test/API/commands/expression/multiline-completion/TestMultilineCompletion.py b/lldb/test/API/commands/expression/multiline-completion/TestMultilineCompletion.py index 9b2b712..e4935d0 100644 --- a/lldb/test/API/commands/expression/multiline-completion/TestMultilineCompletion.py +++ b/lldb/test/API/commands/expression/multiline-completion/TestMultilineCompletion.py @@ -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""" diff --git a/lldb/test/API/commands/gui/basic/TestGuiBasic.py b/lldb/test/API/commands/gui/basic/TestGuiBasic.py index 2dcc7d0..d501b26 100644 --- a/lldb/test/API/commands/gui/basic/TestGuiBasic.py +++ b/lldb/test/API/commands/gui/basic/TestGuiBasic.py @@ -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() diff --git a/lldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py b/lldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py index 5c3d0d7..ed5daf5 100644 --- a/lldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py +++ b/lldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py @@ -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() diff --git a/lldb/test/API/commands/gui/breakpoints/TestGuiBreakpoints.py b/lldb/test/API/commands/gui/breakpoints/TestGuiBreakpoints.py index 13f5e13..3d075c0 100644 --- a/lldb/test/API/commands/gui/breakpoints/TestGuiBreakpoints.py +++ b/lldb/test/API/commands/gui/breakpoints/TestGuiBreakpoints.py @@ -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() diff --git a/lldb/test/API/driver/batch_mode/TestBatchMode.py b/lldb/test/API/driver/batch_mode/TestBatchMode.py index 9639c70..df6cc87 100644 --- a/lldb/test/API/driver/batch_mode/TestBatchMode.py +++ b/lldb/test/API/driver/batch_mode/TestBatchMode.py @@ -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): -- 2.7.4