[Lldb-commits] [lldb] 1e566f6 - [lldb/Test] Add skipIfReproducer for tests that diverge during replay

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 21 14:42:44 PDT 2020


Author: Jonas Devlieghere
Date: 2020-04-21T14:42:14-07:00
New Revision: 1e566f6b47fb77812d99c93e0a1b8613d288058c

URL: https://github.com/llvm/llvm-project/commit/1e566f6b47fb77812d99c93e0a1b8613d288058c
DIFF: https://github.com/llvm/llvm-project/commit/1e566f6b47fb77812d99c93e0a1b8613d288058c.diff

LOG: [lldb/Test] Add skipIfReproducer for tests that diverge during replay

Add the skipIfReproducer decorator to the remaining tests that fail to
replay because the GDB remote packets diverge during replay. This is
*not* expected and should be fixed, but figuring out exactly what caused
the divergence has proven pretty difficult to track down.

I've marked these tests as skipped for now so we can get clean results
and detect new regressions. I have no evidence to believe that these
failures have the same root cause, so I've not assigned them a PR.

Added: 
    

Modified: 
    lldb/test/API/commands/command/script/TestCommandScript.py
    lldb/test/API/commands/expression/issue_11588/Test11588.py
    lldb/test/API/commands/process/attach-resume/TestAttachResume.py
    lldb/test/API/commands/process/attach/TestProcessAttach.py
    lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py
    lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py
    lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
    lldb/test/API/functionalities/signal/TestSendSignal.py
    lldb/test/API/functionalities/step_scripted/TestStepScripted.py
    lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
    lldb/test/API/lang/objc/modules/TestObjCModules.py
    lldb/test/API/lang/objc/print-obj/TestPrintObj.py
    lldb/test/API/python_api/hello_world/TestHelloWorld.py

Removed: 
    


################################################################################
diff  --git a/lldb/test/API/commands/command/script/TestCommandScript.py b/lldb/test/API/commands/command/script/TestCommandScript.py
index b103298f24e1..6663c3641452 100644
--- a/lldb/test/API/commands/command/script/TestCommandScript.py
+++ b/lldb/test/API/commands/command/script/TestCommandScript.py
@@ -14,6 +14,7 @@ class CmdPythonTestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
+    @skipIfReproducer # Unexpected packet during replay
     def test(self):
         self.build()
         self.pycmd_tests()

diff  --git a/lldb/test/API/commands/expression/issue_11588/Test11588.py b/lldb/test/API/commands/expression/issue_11588/Test11588.py
index 626eef6f5511..8ed7797d5fff 100644
--- a/lldb/test/API/commands/expression/issue_11588/Test11588.py
+++ b/lldb/test/API/commands/expression/issue_11588/Test11588.py
@@ -17,6 +17,7 @@ class Issue11581TestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")
+    @skipIfReproducer # Unexpected packet during replay
     def test_11581_commands(self):
         # This is the function to remove the custom commands in order to have a
         # clean slate for the next test case.

diff  --git a/lldb/test/API/commands/process/attach-resume/TestAttachResume.py b/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
index b559f44a6b3d..ebb4345aca91 100644
--- a/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
+++ b/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
@@ -21,6 +21,7 @@ class AttachResumeTestCase(TestBase):
     @expectedFailureAll(oslist=['freebsd'], bugnumber='llvm.org/pr19310')
     @expectedFailureNetBSD
     @skipIfWindows # llvm.org/pr24778, llvm.org/pr21753
+    @skipIfReproducer # Unexpected packet during replay
     def test_attach_continue_interrupt_detach(self):
         """Test attach/continue/interrupt/detach"""
         self.build()

diff  --git a/lldb/test/API/commands/process/attach/TestProcessAttach.py b/lldb/test/API/commands/process/attach/TestProcessAttach.py
index b85d57133507..792a8cee61f9 100644
--- a/lldb/test/API/commands/process/attach/TestProcessAttach.py
+++ b/lldb/test/API/commands/process/attach/TestProcessAttach.py
@@ -39,6 +39,7 @@ def test_attach_to_process_by_id(self):
         self.assertTrue(process, PROCESS_IS_VALID)
 
     @expectedFailureNetBSD
+    @skipIfReproducer # Unexpected packet during replay
     def test_attach_to_process_from_
diff erent_dir_by_id(self):
         """Test attach by process id"""
         newdir = self.getBuildArtifact("newdir")

diff  --git a/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py b/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py
index 02c0aab9149e..ce1328d86d79 100644
--- a/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py
+++ b/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py
@@ -45,6 +45,7 @@ def test_copy_from_dummy_target(self):
         self.build()
         self.do_test_copy_from_dummy_target()
 
+    @skipIfReproducer # Unexpected packet during replay
     def make_target_and_import(self):
         target = self.make_target()
         self.import_resolver_script()

diff  --git a/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py b/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py
index cc48a6397242..c1184d22cf15 100644
--- a/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py
+++ b/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py
@@ -26,6 +26,7 @@ def test_with_python(self):
         self.build()
         self.do_conditional_break()
 
+    @skipIfReproducer # Unexpected packet during replay
     def test_with_command(self):
         """Simulate a user using lldb commands to break on c() if called from a()."""
         self.build()

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
index 5f21e3b2adc4..0fe3d6290f42 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
@@ -17,6 +17,7 @@ def test_connect(self):
         process = self.connect(target)
         self.assertPacketLogContains(["qProcessInfo", "qfThreadInfo"])
 
+    @skipIfReproducer # Unexpected packet during replay
     def test_attach_fail(self):
         error_msg = "mock-error-msg"
 

diff  --git a/lldb/test/API/functionalities/signal/TestSendSignal.py b/lldb/test/API/functionalities/signal/TestSendSignal.py
index 64abfd23629d..84c41d7def64 100644
--- a/lldb/test/API/functionalities/signal/TestSendSignal.py
+++ b/lldb/test/API/functionalities/signal/TestSendSignal.py
@@ -23,6 +23,7 @@ def setUp(self):
         bugnumber="llvm.org/pr23318: does not report running state")
     @expectedFailureNetBSD(bugnumber='llvm.org/pr43959')
     @skipIfWindows  # Windows does not support signals
+    @skipIfReproducer # Unexpected packet during replay
     def test_with_run_command(self):
         """Test that lldb command 'process signal SIGUSR1' sends a signal to the inferior process."""
         self.build()

diff  --git a/lldb/test/API/functionalities/step_scripted/TestStepScripted.py b/lldb/test/API/functionalities/step_scripted/TestStepScripted.py
index eb1b58225806..9cc63f46e806 100644
--- a/lldb/test/API/functionalities/step_scripted/TestStepScripted.py
+++ b/lldb/test/API/functionalities/step_scripted/TestStepScripted.py
@@ -4,6 +4,7 @@
 
 import lldb
 import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.decorators import *
 from lldbsuite.test.lldbtest import *
 
 class StepScriptedTestCase(TestBase):
@@ -17,12 +18,14 @@ def setUp(self):
         self.main_source_file = lldb.SBFileSpec("main.c")
         self.runCmd("command script import Steps.py")
 
+    @skipIfReproducer # Unexpected packet during replay
     def test_standard_step_out(self):
         """Tests stepping with the scripted thread plan laying over a standard 
         thread plan for stepping out."""
         self.build()
         self.step_out_with_scripted_plan("Steps.StepOut")
 
+    @skipIfReproducer # Unexpected packet during replay
     def test_scripted_step_out(self):
         """Tests stepping with the scripted thread plan laying over an another 
         scripted thread plan for stepping out."""
@@ -62,10 +65,12 @@ def test_misspelled_plan_name(self):
         # Make sure we didn't let the process run:
         self.assertEqual(stop_id, process.GetStopID(), "Process didn't run")
         
+    @skipIfReproducer # Unexpected packet during replay
     def test_checking_variable(self):
         """Test that we can call SBValue API's from a scripted thread plan - using SBAPI's to step"""
         self.do_test_checking_variable(False)
         
+    @skipIfReproducer # Unexpected packet during replay
     def test_checking_variable_cli(self):
         """Test that we can call SBValue API's from a scripted thread plan - using cli to step"""
         self.do_test_checking_variable(True)

diff  --git a/lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py b/lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
index f5cb75b4a6dc..7ddaf63f3450 100644
--- a/lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
+++ b/lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
@@ -19,6 +19,7 @@ class RuntimeTypesTestCase(TestBase):
         oslist=["macosx"],
         debug_info="gmodules",
         bugnumber="llvm.org/pr27862")
+    @skipIfReproducer # Unexpected packet during replay
     def test_break(self):
         """Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
         if self.getArchitecture() != 'x86_64':

diff  --git a/lldb/test/API/lang/objc/modules/TestObjCModules.py b/lldb/test/API/lang/objc/modules/TestObjCModules.py
index 695eac9ee856..30535409a30f 100644
--- a/lldb/test/API/lang/objc/modules/TestObjCModules.py
+++ b/lldb/test/API/lang/objc/modules/TestObjCModules.py
@@ -22,6 +22,7 @@ def setUp(self):
 
     @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
+    @skipIfReproducer # Unexpected packet during replay
     def test_expr(self):
         self.build()
         exe = self.getBuildArtifact("a.out")

diff  --git a/lldb/test/API/lang/objc/print-obj/TestPrintObj.py b/lldb/test/API/lang/objc/print-obj/TestPrintObj.py
index 9b3ec33db4e7..b908079eefcd 100644
--- a/lldb/test/API/lang/objc/print-obj/TestPrintObj.py
+++ b/lldb/test/API/lang/objc/print-obj/TestPrintObj.py
@@ -24,6 +24,7 @@ def setUp(self):
         # Find the line numbers to break at.
         self.line = line_number(self.source, '// Set a breakpoint here.')
 
+    @skipIfReproducer # Unexpected packet during replay
     def test_print_obj(self):
         """
         Test "print object" where another thread blocks the print object from making progress.

diff  --git a/lldb/test/API/python_api/hello_world/TestHelloWorld.py b/lldb/test/API/python_api/hello_world/TestHelloWorld.py
index fc6ef4882a06..5b189b36d7f9 100644
--- a/lldb/test/API/python_api/hello_world/TestHelloWorld.py
+++ b/lldb/test/API/python_api/hello_world/TestHelloWorld.py
@@ -109,6 +109,7 @@ def test_with_attach_to_process_with_id_api(self):
     @skipIfiOSSimulator
     @skipIfAsan # FIXME: Hangs indefinitely.
     @expectedFailureNetBSD
+    @skipIfReproducer # Unexpected packet during replay
     def test_with_attach_to_process_with_name_api(self):
         """Create target, spawn a process, and attach to it with process name."""
         exe = '%s_%d'%(self.testMethodName, os.getpid())


        


More information about the lldb-commits mailing list