[Lldb-commits] [lldb] b505ed9 - [lldb] Remove support for replaying the test suite from a reproducer

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Thu Sep 30 10:47:54 PDT 2021


Author: Jonas Devlieghere
Date: 2021-09-30T10:47:19-07:00
New Revision: b505ed9d313653782b81bbc97979c98edb205558

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

LOG: [lldb] Remove support for replaying the test suite from a reproducer

This patch removes the infrastructure to replay the test suite from a
reproducer, as well as the modifications made to the individual tests.

Added: 
    

Modified: 
    lldb/packages/Python/lldbsuite/test/configuration.py
    lldb/packages/Python/lldbsuite/test/decorators.py
    lldb/packages/Python/lldbsuite/test/dotest.py
    lldb/packages/Python/lldbsuite/test/dotest_args.py
    lldb/packages/Python/lldbsuite/test/lldbtest.py
    lldb/test/API/api/log/TestAPILog.py
    lldb/test/API/commands/command/script/TestCommandScript.py
    lldb/test/API/commands/expression/expr-in-syscall/TestExpressionInSyscall.py
    lldb/test/API/commands/expression/issue_11588/Test11588.py
    lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
    lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py
    lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py
    lldb/test/API/commands/log/basic/TestLogging.py
    lldb/test/API/commands/platform/process/list/TestProcessList.py
    lldb/test/API/commands/process/attach-resume/TestAttachResume.py
    lldb/test/API/commands/process/attach/TestProcessAttach.py
    lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py
    lldb/test/API/commands/process/launch/TestProcessLaunch.py
    lldb/test/API/commands/session/save/TestSessionSave.py
    lldb/test/API/commands/settings/TestSettings.py
    lldb/test/API/commands/settings/quoting/TestQuoting.py
    lldb/test/API/commands/target/basic/TestTargetCommand.py
    lldb/test/API/commands/watchpoints/watchpoint_commands/command/TestWatchpointCommandPython.py
    lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
    lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
    lldb/test/API/functionalities/breakpoint/breakpoint_set_restart/TestBreakpointSetRestart.py
    lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py
    lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py
    lldb/test/API/functionalities/breakpoint/serialize/TestBreakpointSerialization.py
    lldb/test/API/functionalities/breakpoint/step_over_breakpoint/TestStepOverBreakpoint.py
    lldb/test/API/functionalities/completion/TestCompletion.py
    lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py
    lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
    lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
    lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py
    lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py
    lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py
    lldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py
    lldb/test/API/functionalities/gdb_remote_client/TestRestartBug.py
    lldb/test/API/functionalities/gdb_remote_client/TestWriteMemory.py
    lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py
    lldb/test/API/functionalities/jitloader_gdb/TestJITLoaderGDB.py
    lldb/test/API/functionalities/load_unload/TestLoadUnload.py
    lldb/test/API/functionalities/load_using_paths/TestLoadUsingPaths.py
    lldb/test/API/functionalities/memory/read/TestMemoryRead.py
    lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
    lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py
    lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
    lldb/test/API/functionalities/postmortem/netbsd-core/TestNetBSDCore.py
    lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py
    lldb/test/API/functionalities/reproducers/attach/TestReproducerAttach.py
    lldb/test/API/functionalities/reproducers/fs-case-sensitivity/TestReproducerFSCaseSensitivity.py
    lldb/test/API/functionalities/signal/TestSendSignal.py
    lldb/test/API/functionalities/step_scripted/TestStepScripted.py
    lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
    lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py
    lldb/test/API/lang/c/modules/TestCModules.py
    lldb/test/API/lang/cpp/accelerator-table/TestCPPAccelerator.py
    lldb/test/API/lang/cpp/member-and-local-vars-with-same-name/TestMembersAndLocalsWithSameName.py
    lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
    lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
    lldb/test/API/lang/objc/foundation/TestSymbolTable.py
    lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
    lldb/test/API/lang/objc/modules-hash-mismatch/TestClangModulesHashMismatch.py
    lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py
    lldb/test/API/lang/objc/modules/TestObjCModules.py
    lldb/test/API/lang/objc/print-obj/TestPrintObj.py
    lldb/test/API/lit.cfg.py
    lldb/test/API/lit.site.cfg.py.in
    lldb/test/API/lldbtest.py
    lldb/test/API/macosx/dyld-trie-symbols/TestDyldTrieSymbols.py
    lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename/TestBundleWithDotInFilename.py
    lldb/test/API/macosx/find-dsym/deep-bundle/TestDeepBundle.py
    lldb/test/API/macosx/function-starts/TestFunctionStarts.py
    lldb/test/API/macosx/macCatalyst/TestMacCatalyst.py
    lldb/test/API/macosx/macCatalystAppMacOSFramework/TestMacCatalystAppWithMacOSFramework.py
    lldb/test/API/macosx/posix_spawn/TestLaunchProcessPosixSpawn.py
    lldb/test/API/macosx/profile_vrs_detach/TestDetachVrsProfile.py
    lldb/test/API/macosx/simulator/TestSimulatorPlatform.py
    lldb/test/API/macosx/thread-names/TestInterruptThreadNames.py
    lldb/test/API/macosx/version_zero/TestGetVersionZeroVersion.py
    lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
    lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py
    lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
    lldb/test/API/python_api/file_handle/TestFileHandle.py
    lldb/test/API/python_api/hello_world/TestHelloWorld.py
    lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py
    lldb/test/API/python_api/process/TestProcessAPI.py
    lldb/test/API/python_api/process/io/TestProcessIO.py
    lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
    lldb/test/API/python_api/sbdata/TestSBData.py
    lldb/test/API/python_api/symbol-context/TestSymbolContext.py
    lldb/test/API/python_api/target/TestTargetAPI.py
    lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
    lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py
    lldb/test/API/source-manager/TestSourceManager.py
    lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
    lldb/test/API/types/AbstractBase.py

Removed: 
    


################################################################################
diff  --git a/lldb/packages/Python/lldbsuite/test/configuration.py b/lldb/packages/Python/lldbsuite/test/configuration.py
index 9b57666f92bc3..6b3da8f255230 100644
--- a/lldb/packages/Python/lldbsuite/test/configuration.py
+++ b/lldb/packages/Python/lldbsuite/test/configuration.py
@@ -117,10 +117,6 @@
 # Test results handling globals
 test_result = None
 
-# Reproducers
-capture_path = None
-replay_path = None
-
 # The names of all tests. Used to assert we don't have two tests with the
 # same base name.
 all_tests = set()
@@ -158,18 +154,3 @@ def get_yaml2obj_path():
     """
     if yaml2obj and os.path.lexists(yaml2obj):
         return yaml2obj
-
-def is_reproducer_replay():
-    """
-    Returns true when dotest is being replayed from a reproducer. Never use
-    this method to guard SB API calls as it will cause a divergence between
-    capture and replay.
-    """
-    return replay_path is not None
-
-def is_reproducer():
-    """
-    Returns true when dotest is capturing a reproducer or is being replayed
-    from a reproducer. Use this method to guard SB API calls.
-    """
-    return capture_path or replay_path

diff  --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py
index d67572e75ec59..972a98a13079b 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -908,9 +908,3 @@ def is_feature_enabled(self):
             except subprocess.CalledProcessError:
                 return "%s is not supported on this system." % feature
     return skipTestIfFn(is_feature_enabled)
-
-def skipIfReproducer(func):
-    """Skip this test if the environment is set up to run LLDB with reproducers."""
-    return unittest2.skipIf(
-        configuration.capture_path or configuration.replay_path,
-        "reproducers unsupported")(func)

diff  --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py
index 5c5583fb5706f..0815188d6cde8 100644
--- a/lldb/packages/Python/lldbsuite/test/dotest.py
+++ b/lldb/packages/Python/lldbsuite/test/dotest.py
@@ -393,16 +393,6 @@ def parseOptionsAndInitTestdirs():
     if do_help:
         usage(parser)
 
-    # Reproducer arguments
-    if args.capture_path and args.replay_path:
-        logging.error('Cannot specify both a capture and a replay path.')
-        sys.exit(-1)
-
-    if args.capture_path:
-        configuration.capture_path = args.capture_path
-
-    if args.replay_path:
-        configuration.replay_path = args.replay_path
     if args.lldb_platform_name:
         configuration.lldb_platform_name = args.lldb_platform_name
     if args.lldb_platform_url:
@@ -888,19 +878,8 @@ def run_suite():
 
     setupSysPath()
 
-    import lldbconfig
-    if configuration.capture_path or configuration.replay_path:
-        lldbconfig.INITIALIZE = False
     import lldb
-
-    if configuration.capture_path:
-        lldb.SBReproducer.Capture(configuration.capture_path)
-        lldb.SBReproducer.SetAutoGenerate(True)
-    elif configuration.replay_path:
-        lldb.SBReproducer.PassiveReplay(configuration.replay_path)
-
-    if not lldbconfig.INITIALIZE:
-        lldb.SBDebugger.Initialize()
+    lldb.SBDebugger.Initialize()
 
     # Use host platform by default.
     lldb.selected_platform = lldb.SBPlatform.GetHostPlatform()

diff  --git a/lldb/packages/Python/lldbsuite/test/dotest_args.py b/lldb/packages/Python/lldbsuite/test/dotest_args.py
index af45205ae3edc..aac2fecfe6994 100644
--- a/lldb/packages/Python/lldbsuite/test/dotest_args.py
+++ b/lldb/packages/Python/lldbsuite/test/dotest_args.py
@@ -189,17 +189,6 @@ def create_parser():
         metavar='platform-working-dir',
         help='The directory to use on the remote platform.')
 
-    # Reproducer options
-    group = parser.add_argument_group('Reproducer options')
-    group.add_argument(
-        '--capture-path',
-        metavar='reproducer path',
-        help='The reproducer capture path')
-    group.add_argument(
-        '--replay-path',
-        metavar='reproducer path',
-        help='The reproducer replay path')
-
     # Test-suite behaviour
     group = parser.add_argument_group('Runtime behaviour options')
     X('-d', 'Suspend the process after launch to wait indefinitely for a debugger to attach')

diff  --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index db350aee4a182..d32b960ecd492 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -746,14 +746,6 @@ def getBuildDir(self):
         return os.path.join(configuration.test_build_dir, self.mydir,
                             self.getBuildDirBasename())
 
-    def getReproducerDir(self):
-        """Return the full path to the reproducer if enabled."""
-        if configuration.capture_path:
-            return configuration.capture_path
-        if configuration.replay_path:
-            return configuration.replay_path
-        return None
-
     def makeBuildDir(self):
         """Create the test-specific working directory, deleting any previous
         contents."""
@@ -770,16 +762,6 @@ def getSourcePath(self, name):
         """Return absolute path to a file in the test's source directory."""
         return os.path.join(self.getSourceDir(), name)
 
-    def getReproducerArtifact(self, name):
-        lldbutil.mkdir_p(self.getReproducerDir())
-        return os.path.join(self.getReproducerDir(), name)
-
-    def getReproducerRemappedPath(self, path):
-        assert configuration.replay_path
-        assert os.path.isabs(path)
-        path = os.path.relpath(path, '/')
-        return os.path.join(configuration.replay_path, 'root', path)
-
     @classmethod
     def setUpCommands(cls):
         commands = [
@@ -1097,11 +1079,8 @@ def tearDown(self):
         # the shared module cache.
         lldb.SBModule.GarbageCollectAllocatedModules()
 
-        # Modules are not orphaned during reproducer replay because they're
-        # leaked on purpose.
-        if not configuration.is_reproducer():
-            # Assert that the global module cache is empty.
-            self.assertEqual(lldb.SBModule.GetNumberAllocatedModules(), 0)
+        # Assert that the global module cache is empty.
+        self.assertEqual(lldb.SBModule.GetNumberAllocatedModules(), 0)
 
 
     # =========================================================
@@ -2101,9 +2080,8 @@ def tearDown(self):
         for target in targets:
             self.dbg.DeleteTarget(target)
 
-        if not configuration.is_reproducer():
-            # Assert that all targets are deleted.
-            self.assertEqual(self.dbg.GetNumTargets(), 0)
+        # Assert that all targets are deleted.
+        self.assertEqual(self.dbg.GetNumTargets(), 0)
 
         # Do this last, to make sure it's in reverse order from how we setup.
         Base.tearDown(self)

diff  --git a/lldb/test/API/api/log/TestAPILog.py b/lldb/test/API/api/log/TestAPILog.py
index d5a2e4857e536..3c340f1cafc71 100644
--- a/lldb/test/API/api/log/TestAPILog.py
+++ b/lldb/test/API/api/log/TestAPILog.py
@@ -25,9 +25,6 @@ def test_api_log(self):
         self.dbg.GetScriptingLanguage(None)
         target = self.dbg.CreateTarget(None)
 
-        if configuration.is_reproducer_replay():
-            logfile = self.getReproducerRemappedPath(logfile)
-
         self.assertTrue(os.path.isfile(logfile))
         with open(logfile, 'r') as f:
             log = f.read()

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

diff  --git a/lldb/test/API/commands/expression/expr-in-syscall/TestExpressionInSyscall.py b/lldb/test/API/commands/expression/expr-in-syscall/TestExpressionInSyscall.py
index 9083c51376f1b..d433e2e400ae3 100644
--- a/lldb/test/API/commands/expression/expr-in-syscall/TestExpressionInSyscall.py
+++ b/lldb/test/API/commands/expression/expr-in-syscall/TestExpressionInSyscall.py
@@ -14,7 +14,6 @@ class ExprSyscallTestCase(TestBase):
         oslist=["windows"],
         bugnumber="llvm.org/pr21765, getpid() does not exist on Windows")
     @expectedFailureNetBSD
-    @skipIfReproducer
     def test_setpgid(self):
         self.build()
         self.expr_syscall()

diff  --git a/lldb/test/API/commands/expression/issue_11588/Test11588.py b/lldb/test/API/commands/expression/issue_11588/Test11588.py
index eb5b86e96363d..626eef6f5511a 100644
--- a/lldb/test/API/commands/expression/issue_11588/Test11588.py
+++ b/lldb/test/API/commands/expression/issue_11588/Test11588.py
@@ -17,7 +17,6 @@ class Issue11581TestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")
-    @skipIfReproducer # FIXME: Unexpected packet during (active) 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/expression/no-deadlock/TestExprDoesntBlock.py b/lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
index 5cf39d304da84..280236688f043 100644
--- a/lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
+++ b/lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
@@ -16,7 +16,6 @@ class ExprDoesntDeadlockTestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
     @add_test_categories(["basic_process"])
-    @skipIfReproducer # Timeouts are not currently modeled.
     def test_with_run_command(self):
         """Test that expr will time out and allow other threads to run if it blocks."""
         self.build()

diff  --git a/lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py b/lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py
index 733c9921487eb..e6dcec3df9b86 100644
--- a/lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py
+++ b/lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py
@@ -26,7 +26,6 @@ def setUp(self):
         oslist=[
             "windows"],
         bugnumber="llvm.org/pr21765")
-    @skipIfReproducer # Timeouts are not currently modeled.
     def test(self):
         """Test calling std::String member function."""
         self.build()

diff  --git a/lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py b/lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py
index 17424551fd834..e21edef4d8064 100644
--- a/lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py
+++ b/lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py
@@ -51,7 +51,6 @@ def test_conditional_bktp(self):
 
     @add_test_categories(['pyapi'])
     @expectedFlakeyNetBSD
-    @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def test_unwind_expression(self):
         """Test unwinding from an expression."""
         self.build_and_run_to_bkpt()

diff  --git a/lldb/test/API/commands/log/basic/TestLogging.py b/lldb/test/API/commands/log/basic/TestLogging.py
index 4ba67f8794b64..21d92fe92d8ed 100644
--- a/lldb/test/API/commands/log/basic/TestLogging.py
+++ b/lldb/test/API/commands/log/basic/TestLogging.py
@@ -20,8 +20,6 @@ def setUp(self):
         super(LogTestCase, self).setUp()
         self.log_file = self.getBuildArtifact("log-file.txt")
 
-        if configuration.is_reproducer_replay():
-            self.log_file = self.getReproducerRemappedPath(self.log_file)
 
     def test_file_writing(self):
         self.build()

diff  --git a/lldb/test/API/commands/platform/process/list/TestProcessList.py b/lldb/test/API/commands/platform/process/list/TestProcessList.py
index fe2ed74916ebe..5d83512a73a57 100644
--- a/lldb/test/API/commands/platform/process/list/TestProcessList.py
+++ b/lldb/test/API/commands/platform/process/list/TestProcessList.py
@@ -29,9 +29,4 @@ def test_process_list_with_args(self):
 
         substrs = [str(popen.pid), "TestProcess arg1 --arg2 arg3"]
 
-        # Because LLDB isn't the one spawning the subprocess, the PID will be
-        # 
diff erent during replay.
-        if configuration.is_reproducer_replay():
-            substrs.pop(0)
-
         self.expect("platform process list -v", substrs=substrs)

diff  --git a/lldb/test/API/commands/process/attach-resume/TestAttachResume.py b/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
index a73b6566c747a..11d9ab26fa248 100644
--- a/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
+++ b/lldb/test/API/commands/process/attach-resume/TestAttachResume.py
@@ -20,7 +20,6 @@ class AttachResumeTestCase(TestBase):
     @skipIfRemote
     @expectedFailureNetBSD
     @skipIfWindows # llvm.org/pr24778, llvm.org/pr21753
-    @skipIfReproducer # FIXME: Unexpected packet during (active) 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 4738ee5851e7a..265e9e1a5687d 100644
--- a/lldb/test/API/commands/process/attach/TestProcessAttach.py
+++ b/lldb/test/API/commands/process/attach/TestProcessAttach.py
@@ -60,7 +60,6 @@ def test_attach_to_process_by_id_autocontinue(self):
         self.assertTrue(process, PROCESS_IS_VALID)
         self.assertTrue(process.GetState(), lldb.eStateRunning)
 
-    @skipIfReproducer # FIXME: Unexpected packet during (active) replay
     @skipIfWindows # This is flakey on Windows AND when it fails, it hangs: llvm.org/pr48806
     def test_attach_to_process_from_
diff erent_dir_by_id(self):
         """Test attach by process id"""

diff  --git a/lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py b/lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py
index 4a2b0b7cf817d..1072529e31141 100644
--- a/lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py
+++ b/lldb/test/API/commands/process/attach/attach_denied/TestAttachDenied.py
@@ -21,7 +21,6 @@ class AttachDeniedTestCase(TestBase):
     @skipIfWindows
     @skipIfiOSSimulator
     @skipIfDarwinEmbedded  # ptrace(ATTACH_REQUEST...) won't work on ios/tvos/etc
-    @skipIfReproducer
     def test_attach_to_process_by_id_denied(self):
         """Test attach by process id denied"""
         self.build()

diff  --git a/lldb/test/API/commands/process/launch/TestProcessLaunch.py b/lldb/test/API/commands/process/launch/TestProcessLaunch.py
index b36a137557477..3f0791a2bd06b 100644
--- a/lldb/test/API/commands/process/launch/TestProcessLaunch.py
+++ b/lldb/test/API/commands/process/launch/TestProcessLaunch.py
@@ -29,7 +29,6 @@ def tearDown(self):
         TestBase.tearDown(self)
 
     @skipIfRemote
-    @skipIfReproducer
     def test_io(self):
         """Test that process launch I/O redirection flags work properly."""
         self.build()
@@ -85,7 +84,6 @@ def test_io(self):
     @skipIfRemote
     @expectedFailureAll(oslist=["freebsd", "linux"], bugnumber="llvm.org/pr20265")
     @expectedFailureNetBSD
-    @skipIfReproducer
     def test_set_working_dir_nonexisting(self):
         """Test that '-w dir' fails to set the working dir when running the inferior with a dir which doesn't exist."""
         d = {'CXX_SOURCES': 'print_cwd.cpp'}
@@ -113,7 +111,6 @@ def test_set_working_dir_nonexisting(self):
                 invalid_dir_path])
 
     @skipIfRemote
-    @skipIfReproducer
     def test_set_working_dir_existing(self):
         """Test that '-w dir' sets the working dir when running the inferior."""
         d = {'CXX_SOURCES': 'print_cwd.cpp'}
@@ -173,7 +170,6 @@ def test_set_working_dir_existing(self):
         if not success:
             self.fail(err_msg)
 
-    @skipIfReproducer
     def test_environment_with_special_char(self):
         """Test that environment variables containing '*' and '}' are handled correctly by the inferior."""
         source = 'print_env.cpp'

diff  --git a/lldb/test/API/commands/session/save/TestSessionSave.py b/lldb/test/API/commands/session/save/TestSessionSave.py
index 2e25047e501a7..04dddc5cab55e 100644
--- a/lldb/test/API/commands/session/save/TestSessionSave.py
+++ b/lldb/test/API/commands/session/save/TestSessionSave.py
@@ -24,7 +24,6 @@ def raw_transcript_builder(self, cmd, res):
 
 
     @skipIfWindows
-    @skipIfReproducer
     @no_debug_info_test
     def test_session_save(self):
         raw = ""
@@ -92,7 +91,6 @@ def test_session_save(self):
             self.assertIn(line, content)
 
     @skipIfWindows
-    @skipIfReproducer
     @no_debug_info_test
     def test_session_save_on_quit(self):
         raw = ""

diff  --git a/lldb/test/API/commands/settings/TestSettings.py b/lldb/test/API/commands/settings/TestSettings.py
index 7eab23a195bb4..83c5b10f51abd 100644
--- a/lldb/test/API/commands/settings/TestSettings.py
+++ b/lldb/test/API/commands/settings/TestSettings.py
@@ -239,12 +239,10 @@ def test_disassembler_settings(self):
                     substrs=["5ah"])
 
     @skipIfDarwinEmbedded   # <rdar://problem/34446098> debugserver on ios etc can't write files
-    @skipIfReproducer
     def test_run_args_and_env_vars(self):
         self.do_test_run_args_and_env_vars(use_launchsimple=False)
 
     @skipIfDarwinEmbedded   # <rdar://problem/34446098> debugserver on ios etc can't write files
-    @skipIfReproducer
     def test_launchsimple_args_and_env_vars(self):
         self.do_test_run_args_and_env_vars(use_launchsimple=True)
 
@@ -329,7 +327,6 @@ def do_test_run_args_and_env_vars(self, use_launchsimple):
                 "Environment variable 'MY_ENV_VAR' successfully passed."])
 
     @skipIfRemote  # it doesn't make sense to send host env to remote target
-    @skipIfReproducer
     def test_pass_host_env_vars(self):
         """Test that the host env vars are passed to the launched process."""
         self.build()
@@ -426,7 +423,6 @@ def unset_env_variables():
                 "The host environment variable 'MY_HOST_ENV_VAR2' successfully passed."])
 
     @skipIfDarwinEmbedded   # <rdar://problem/34446098> debugserver on ios etc can't write files
-    @skipIfReproducer
     def test_set_error_output_path(self):
         """Test that setting target.error/output-path for the launched process works."""
         self.build()

diff  --git a/lldb/test/API/commands/settings/quoting/TestQuoting.py b/lldb/test/API/commands/settings/quoting/TestQuoting.py
index a64c34a6ff386..04b57c8fbd767 100644
--- a/lldb/test/API/commands/settings/quoting/TestQuoting.py
+++ b/lldb/test/API/commands/settings/quoting/TestQuoting.py
@@ -18,7 +18,6 @@ def classCleanup(cls):
         """Cleanup the test byproducts."""
         cls.RemoveTempFile(SettingsCommandTestCase.output_file_name)
 
-    @skipIfReproducer  # Reproducers don't know about output.txt
     @no_debug_info_test
     def test(self):
         self.build()

diff  --git a/lldb/test/API/commands/target/basic/TestTargetCommand.py b/lldb/test/API/commands/target/basic/TestTargetCommand.py
index 74b6c1fdcaed7..15b226b4d3bf2 100644
--- a/lldb/test/API/commands/target/basic/TestTargetCommand.py
+++ b/lldb/test/API/commands/target/basic/TestTargetCommand.py
@@ -358,7 +358,6 @@ def test_target_create_nonexistent_core_file(self):
 
     # Write only files don't seem to be supported on Windows.
     @skipIfWindows
-    @skipIfReproducer # Cannot be captured in the VFS.
     @no_debug_info_test
     def test_target_create_unreadable_core_file(self):
         tf = tempfile.NamedTemporaryFile()
@@ -383,7 +382,6 @@ def test_target_create_invalid_core_file(self):
     # Write only files don't seem to be supported on Windows.
     @skipIfWindows
     @no_debug_info_test
-    @skipIfReproducer # Cannot be captured in the VFS.
     def test_target_create_unreadable_sym_file(self):
         tf = tempfile.NamedTemporaryFile()
         os.chmod(tf.name, stat.S_IWRITE)

diff  --git a/lldb/test/API/commands/watchpoints/watchpoint_commands/command/TestWatchpointCommandPython.py b/lldb/test/API/commands/watchpoints/watchpoint_commands/command/TestWatchpointCommandPython.py
index 5d8eb3e8c01bc..c99c44d098d5c 100644
--- a/lldb/test/API/commands/watchpoints/watchpoint_commands/command/TestWatchpointCommandPython.py
+++ b/lldb/test/API/commands/watchpoints/watchpoint_commands/command/TestWatchpointCommandPython.py
@@ -94,7 +94,6 @@ def test_watchpoint_command(self):
         self.expect("frame variable --show-globals cookie",
                     substrs=['(int32_t)', 'cookie = 777'])
 
-    @skipIfReproducer
     def test_continue_in_watchpoint_command(self):
         """Test continue in a watchpoint command."""
         self.build(dictionary=self.d)

diff  --git a/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py b/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
index 3fc21ad7eed9f..be2e1426d580a 100644
--- a/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
+++ b/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
@@ -17,14 +17,12 @@ class BreakpointCommandTestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24528")
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_breakpoint_command_sequence(self):
         """Test a sequence of breakpoint command add, list, and delete."""
         self.build()
         self.breakpoint_command_sequence()
 
     @skipIf(oslist=["windows"], bugnumber="llvm.org/pr44431")
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_script_parameters(self):
         """Test a sequence of breakpoint command add, list, and delete."""
         self.build()

diff  --git a/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py b/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
index f8575cf9f04ab..b5ff89a6fd060 100644
--- a/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
+++ b/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
@@ -18,13 +18,11 @@ class PythonBreakpointCommandSettingTestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
     @add_test_categories(['pyapi'])
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_step_out_python(self):
         """Test stepping out using a python breakpoint command."""
         self.build()
         self.do_set_python_command_from_python()
 
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_bkpt_cmd_bad_arguments(self):
         """Test what happens when pass structured data to a command:"""
         self.build()

diff  --git a/lldb/test/API/functionalities/breakpoint/breakpoint_set_restart/TestBreakpointSetRestart.py b/lldb/test/API/functionalities/breakpoint/breakpoint_set_restart/TestBreakpointSetRestart.py
index f9d5aeeeb3b24..40a20a04b76b1 100644
--- a/lldb/test/API/functionalities/breakpoint/breakpoint_set_restart/TestBreakpointSetRestart.py
+++ b/lldb/test/API/functionalities/breakpoint/breakpoint_set_restart/TestBreakpointSetRestart.py
@@ -13,7 +13,6 @@ class BreakpointSetRestart(TestBase):
     BREAKPOINT_TEXT = 'Set a breakpoint here'
 
     @skipIfNetBSD
-    @skipIfReproducer
     def test_breakpoint_set_restart(self):
         self.build()
 

diff  --git a/lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py b/lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py
index 7bf1f34b5fe14..3a6d663913801 100644
--- a/lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py
+++ b/lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py
@@ -120,10 +120,6 @@ def check_objc_breakpoints(self, have_dsym):
 
         self.check_category_breakpoints()
 
-        # Stop here for reproducers. They don't capture file system changes.
-        if configuration.is_reproducer():
-            return
-
         if have_dsym:
             shutil.rmtree(exe + ".dSYM")
         self.assertEqual(subprocess.call(

diff  --git a/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py b/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py
index f4bbde755e690..02c0aab9149e9 100644
--- a/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py
+++ b/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py
@@ -16,7 +16,6 @@ class TestScriptedResolver(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24528")
-    @skipIfReproducer # FIXME: Unexpected packet during (active) replay
     def test_scripted_resolver(self):
         """Use a scripted resolver to set a by symbol name breakpoint"""
         self.build()

diff  --git a/lldb/test/API/functionalities/breakpoint/serialize/TestBreakpointSerialization.py b/lldb/test/API/functionalities/breakpoint/serialize/TestBreakpointSerialization.py
index 12290411fb5dc..f209dbedcf1cc 100644
--- a/lldb/test/API/functionalities/breakpoint/serialize/TestBreakpointSerialization.py
+++ b/lldb/test/API/functionalities/breakpoint/serialize/TestBreakpointSerialization.py
@@ -16,42 +16,36 @@ class BreakpointSerialization(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
     @add_test_categories(['pyapi'])
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_resolvers(self):
         """Use Python APIs to test that we serialize resolvers."""
         self.build()
         self.setup_targets_and_cleanup()
         self.do_check_resolvers()
 
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_filters(self):
         """Use Python APIs to test that we serialize search filters correctly."""
         self.build()
         self.setup_targets_and_cleanup()
         self.do_check_filters()
 
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_options(self):
         """Use Python APIs to test that we serialize breakpoint options correctly."""
         self.build()
         self.setup_targets_and_cleanup()
         self.do_check_options()
 
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_appending(self):
         """Use Python APIs to test that we serialize breakpoint options correctly."""
         self.build()
         self.setup_targets_and_cleanup()
         self.do_check_appending()
 
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_name_filters(self):
         """Use python APIs to test that reading in by name works correctly."""
         self.build()
         self.setup_targets_and_cleanup()
         self.do_check_names()
 
-    @skipIfReproducer # side_effect bypasses reproducer
     def test_scripted_extra_args(self):
         self.build()
         self.setup_targets_and_cleanup()

diff  --git a/lldb/test/API/functionalities/breakpoint/step_over_breakpoint/TestStepOverBreakpoint.py b/lldb/test/API/functionalities/breakpoint/step_over_breakpoint/TestStepOverBreakpoint.py
index 931326b322911..b20490f3cefdc 100644
--- a/lldb/test/API/functionalities/breakpoint/step_over_breakpoint/TestStepOverBreakpoint.py
+++ b/lldb/test/API/functionalities/breakpoint/step_over_breakpoint/TestStepOverBreakpoint.py
@@ -51,7 +51,6 @@ def setUp(self):
         self.thread = lldbutil.get_one_thread_stopped_at_breakpoint(self.process, self.breakpoint1)
         self.assertIsNotNone(self.thread, "Didn't stop at breakpoint 1.")
 
-    @skipIfReproducer
     def test_step_instruction(self):
         # Count instructions between breakpoint_1 and breakpoint_4
         contextList = self.target.FindFunctions('main', lldb.eFunctionNameTypeAuto)

diff  --git a/lldb/test/API/functionalities/completion/TestCompletion.py b/lldb/test/API/functionalities/completion/TestCompletion.py
index 11f0e387245e0..2bba1bfcb7dd6 100644
--- a/lldb/test/API/functionalities/completion/TestCompletion.py
+++ b/lldb/test/API/functionalities/completion/TestCompletion.py
@@ -131,7 +131,6 @@ def completions_contain_str(self, input, needle):
 
 
     @skipIfRemote
-    @skipIfReproducer
     def test_common_completion_process_pid_and_name(self):
         # The LLDB process itself and the process already attached to are both
         # ignored by the process discovery mechanism, thus we need a process known

diff  --git a/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py b/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py
index a2c8b42a9a105..56ae6a5ade914 100644
--- a/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py
+++ b/lldb/test/API/functionalities/conditional_break/TestConditionalBreak.py
@@ -26,7 +26,6 @@ def test_with_python(self):
         self.build()
         self.do_conditional_break()
 
-    @skipIfReproducer # FIXME: Unexpected packet during (active) 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/deleted-executable/TestDeletedExecutable.py b/lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
index 51681d65d210e..0de7645844435 100644
--- a/lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
+++ b/lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
@@ -19,7 +19,6 @@ class TestDeletedExecutable(TestBase):
     @expectedFailureAll(oslist=["linux"],
         triple=no_match('aarch64-.*-android'))
         # determining the architecture of the process fails
-    @skipIfReproducer # File synchronization is not supported during replay.
     def test(self):
         self.build()
         exe = self.getBuildArtifact("a.out")

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
index 03ef4a73af506..497c5cbbbcdac 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
@@ -12,14 +12,12 @@ class gPacketResponder(MockGDBServerResponder):
         def readRegisters(self):
             return '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
 
-    @skipIfReproducer # Packet log is not populated during replay.
     def test_connect(self):
         """Test connecting to a remote gdb server"""
         target = self.createTarget("a.yaml")
         process = self.connect(target)
         self.assertPacketLogContains(["qProcessInfo", "qfThreadInfo"])
 
-    @skipIfReproducer # FIXME: Unexpected packet during (active) replay
     def test_attach_fail(self):
         error_msg = "mock-error-msg"
 
@@ -69,7 +67,6 @@ def A(self, packet):
                 None, 0, True, error)
         self.assertEquals("'A' packet returned an error: 71", error.GetCString())
 
-    @skipIfReproducer # Packet log is not populated during replay.
     def test_read_registers_using_g_packets(self):
         """Test reading registers using 'g' packets (default behavior)"""
         self.dbg.HandleCommand(
@@ -87,7 +84,6 @@ def test_read_registers_using_g_packets(self):
         self.assertEquals(
                 0, len([p for p in self.server.responder.packetLog if p.startswith("p")]))
 
-    @skipIfReproducer # Packet log is not populated during replay.
     def test_read_registers_using_p_packets(self):
         """Test reading registers using 'p' packets"""
         self.dbg.HandleCommand(
@@ -100,7 +96,6 @@ def test_read_registers_using_p_packets(self):
         self.assertGreater(
                 len([p for p in self.server.responder.packetLog if p.startswith("p")]), 0)
 
-    @skipIfReproducer # Packet log is not populated during replay.
     def test_write_registers_using_P_packets(self):
         """Test writing registers using 'P' packets (default behavior)"""
         self.server.responder = self.gPacketResponder()
@@ -113,7 +108,6 @@ def test_write_registers_using_P_packets(self):
         self.assertGreater(
                 len([p for p in self.server.responder.packetLog if p.startswith("P")]), 0)
 
-    @skipIfReproducer # Packet log is not populated during replay.
     def test_write_registers_using_G_packets(self):
         """Test writing registers using 'G' packets"""
 

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py
index 19f2824a18f28..33f6581976c13 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py
@@ -19,7 +19,6 @@ def test_module_load_address(self):
         self.assertTrue(address.IsValid())
         self.assertEqual(".data", address.GetSection().GetName())
 
-    @skipIfReproducer # Packet log is not populated during replay.
     @expectedFailureAll(archs=["aarch64"], oslist=["freebsd"],
                         bugnumber="llvm.org/pr49414")
     def test_ram_load(self):
@@ -33,7 +32,6 @@ def test_ram_load(self):
                 ])
 
     @skipIfXmlSupportMissing
-    @skipIfReproducer # Packet log is not populated during replay.
     @expectedFailureAll(archs=["aarch64"], oslist=["freebsd"],
                         bugnumber="llvm.org/pr49414")
     def test_flash_load(self):

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py b/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py
index a3eceaf95e070..f196f1cc09d38 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py
@@ -3,7 +3,6 @@
 from lldbsuite.test.decorators import *
 from gdbclientutils import *
 
- at skipIfReproducer
 class TestIOSSimulator(GDBRemoteTestBase):
     """
     Test that an ios simulator process is recognized as such.

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py b/lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py
index 754ed44ce8d81..27b2ece6785e8 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py
@@ -184,15 +184,13 @@ def QListThreadsInStopReply(self):
         err = msp_valobj.GetError()
         self.assertTrue(err.Fail(), "lldb should not be able to fetch the msp register")
 
-        # Reproducers don't support SetData (yet) because it takes a void*.
-        if not configuration.is_reproducer():
-          val = b'\x11\x22\x33\x44'
-          error = lldb.SBError()
-          data = lldb.SBData()
-          data.SetData(error, val, lldb.eByteOrderBig, 4)
-          self.assertEqual(r1_valobj.SetData(data, error), True)
-          self.assertTrue(error.Success())
-
-          r1_valobj = process.GetThreadAtIndex(0).GetFrameAtIndex(0).FindRegister("r1")
-          self.assertEqual(r1_valobj.GetValueAsUnsigned(), 0x11223344)
+        val = b'\x11\x22\x33\x44'
+        error = lldb.SBError()
+        data = lldb.SBData()
+        data.SetData(error, val, lldb.eByteOrderBig, 4)
+        self.assertEqual(r1_valobj.SetData(data, error), True)
+        self.assertTrue(error.Success())
+
+        r1_valobj = process.GetThreadAtIndex(0).GetFrameAtIndex(0).FindRegister("r1")
+        self.assertEqual(r1_valobj.GetValueAsUnsigned(), 0x11223344)
 

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py b/lldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py
index 80b83fbe29191..9ad498de15d6e 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py
@@ -20,7 +20,6 @@ def test_gdb_remote_sync(self):
         finally:
             self.dbg.GetSelectedPlatform().DisconnectRemote()
 
-    @skipIfReproducer # Reproducer don't support async.
     def test_gdb_remote_async(self):
         """Test the gdb-remote command in asynchronous mode"""
         try:
@@ -47,7 +46,6 @@ def test_process_connect_sync(self):
             self.dbg.GetSelectedPlatform().DisconnectRemote()
 
     @skipIfWindows
-    @skipIfReproducer # Reproducer don't support async.
     def test_process_connect_async(self):
         """Test the gdb-remote command in asynchronous mode"""
         try:

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestRestartBug.py b/lldb/test/API/functionalities/gdb_remote_client/TestRestartBug.py
index f66f58379890d..142861a37dff2 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestRestartBug.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestRestartBug.py
@@ -8,7 +8,6 @@
 class TestRestartBug(GDBRemoteTestBase):
 
     @expectedFailureAll(bugnumber="llvm.org/pr24530")
-    @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def test(self):
         """
         Test auto-continue behavior when a process is interrupted to deliver

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestWriteMemory.py b/lldb/test/API/functionalities/gdb_remote_client/TestWriteMemory.py
index 83fa197c2fe3e..73bd292463f0f 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestWriteMemory.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestWriteMemory.py
@@ -6,7 +6,6 @@
 
 class TestWriteMemory(GDBRemoteTestBase):
 
-    @skipIfReproducer # SBProcess::WriteMemory is not instrumented.
     def test(self):
 
         class MyResponder(MockGDBServerResponder):

diff  --git a/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py b/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py
index 16ab1aaeb5932..95cdfb5591fa0 100644
--- a/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py
+++ b/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py
@@ -16,7 +16,6 @@ class ChangedInferiorTestCase(TestBase):
 
     @skipIf(hostoslist=["windows"])
     @no_debug_info_test
-    @skipIfReproducer # VFS is a snapshot.
     def test_inferior_crashing(self):
         """Test lldb reloads the inferior after it was changed during the session."""
         self.build()

diff  --git a/lldb/test/API/functionalities/jitloader_gdb/TestJITLoaderGDB.py b/lldb/test/API/functionalities/jitloader_gdb/TestJITLoaderGDB.py
index 4a1118c2a292e..d7f4f8399baf4 100644
--- a/lldb/test/API/functionalities/jitloader_gdb/TestJITLoaderGDB.py
+++ b/lldb/test/API/functionalities/jitloader_gdb/TestJITLoaderGDB.py
@@ -72,10 +72,9 @@ def cleanup():
         self.assertEqual(process.GetState(), lldb.eStateExited)
         self.assertEqual(process.GetExitStatus(), 0)
 
-        if not configuration.is_reproducer():
-            self.assertTrue(os.path.exists(logfile))
-            logcontent = open(logfile).read()
-            self.assertIn("SetJITBreakpoint setting JIT breakpoint", logcontent)
+        self.assertTrue(os.path.exists(logfile))
+        logcontent = open(logfile).read()
+        self.assertIn("SetJITBreakpoint setting JIT breakpoint", logcontent)
 
     @skipIfWindows # This test fails on Windows during C code build
     def test_jit_int_off(self):
@@ -101,7 +100,6 @@ def cleanup():
         self.assertEqual(process.GetState(), lldb.eStateExited)
         self.assertEqual(process.GetExitStatus(), 0)
 
-        if not configuration.is_reproducer():
-            self.assertTrue(os.path.exists(logfile))
-            logcontent = open(logfile).read()
-            self.assertNotIn("SetJITBreakpoint setting JIT breakpoint", logcontent)
+        self.assertTrue(os.path.exists(logfile))
+        logcontent = open(logfile).read()
+        self.assertNotIn("SetJITBreakpoint setting JIT breakpoint", logcontent)

diff  --git a/lldb/test/API/functionalities/load_unload/TestLoadUnload.py b/lldb/test/API/functionalities/load_unload/TestLoadUnload.py
index 913265549c81c..488a6922b231f 100644
--- a/lldb/test/API/functionalities/load_unload/TestLoadUnload.py
+++ b/lldb/test/API/functionalities/load_unload/TestLoadUnload.py
@@ -93,7 +93,6 @@ def setSvr4Support(self, enabled):
     @expectedFailureAll(oslist=["freebsd", "linux", "netbsd"])
     @skipIfRemote
     @skipIfWindows  # Windows doesn't have dlopen and friends, dynamic libraries work 
diff erently
-    @skipIfReproducer # VFS is a snapshot.
     def test_modules_search_paths(self):
         """Test target modules list after loading a 
diff erent copy of the library libd.dylib, and verifies that it works with 'target modules search-paths add'."""
         if self.platformIsDarwin():
@@ -217,7 +216,6 @@ def test_lldb_process_load_and_unload_commands_with_svr4(self):
         self.setSvr4Support(True)
         self.run_lldb_process_load_and_unload_commands()
 
-    @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def run_lldb_process_load_and_unload_commands(self):
         """Test that lldb process load/unload command work correctly."""
         self.copy_shlibs_to_remote()

diff  --git a/lldb/test/API/functionalities/load_using_paths/TestLoadUsingPaths.py b/lldb/test/API/functionalities/load_using_paths/TestLoadUsingPaths.py
index b54435e7338e2..cfa55c4055a56 100644
--- a/lldb/test/API/functionalities/load_using_paths/TestLoadUsingPaths.py
+++ b/lldb/test/API/functionalities/load_using_paths/TestLoadUsingPaths.py
@@ -40,7 +40,6 @@ def setUp(self):
     @skipIfWindows  # Windows doesn't have dlopen and friends, dynamic libraries work 
diff erently
     @expectedFlakeyNetBSD
     @expectedFailureAll(oslist=["linux"], archs=['arm'], bugnumber="llvm.org/pr45894")
-    @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def test_load_using_paths(self):
         """Test that we can load a module by providing a set of search paths."""
         if self.platformIsDarwin():

diff  --git a/lldb/test/API/functionalities/memory/read/TestMemoryRead.py b/lldb/test/API/functionalities/memory/read/TestMemoryRead.py
index 3efda021584b5..ceea4ab2f067a 100644
--- a/lldb/test/API/functionalities/memory/read/TestMemoryRead.py
+++ b/lldb/test/API/functionalities/memory/read/TestMemoryRead.py
@@ -150,8 +150,6 @@ def test_memory_read_file(self):
         golden_output = res.GetOutput()
 
         memory_read_file = self.getBuildArtifact("memory-read-output")
-        if configuration.is_reproducer_replay():
-            memory_read_file = self.getReproducerRemappedPath(memory_read_file)
 
         def check_file_content(expected):
             with open(memory_read_file) as f:

diff  --git a/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py b/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
index 3dfc7a0d4405b..aadb6f63fb5e8 100644
--- a/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
+++ b/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
@@ -33,41 +33,35 @@ class LinuxCoreTestCase(TestBase):
     _ppc64le_regions = 2
 
     @skipIfLLVMTargetMissing("AArch64")
-    @skipIfReproducer  # lldb::FileSP used in typemap cannot be instrumented.
     def test_aarch64(self):
         """Test that lldb can read the process information from an aarch64 linux core file."""
         self.do_test("linux-aarch64", self._aarch64_pid,
                      self._aarch64_regions, "a.out")
 
     @skipIfLLVMTargetMissing("X86")
-    @skipIfReproducer  # lldb::FileSP used in typemap cannot be instrumented.
     def test_i386(self):
         """Test that lldb can read the process information from an i386 linux core file."""
         self.do_test("linux-i386", self._i386_pid, self._i386_regions, "a.out")
 
     @skipIfLLVMTargetMissing("PowerPC")
-    @skipIfReproducer  # lldb::FileSP used in typemap cannot be instrumented.
     def test_ppc64le(self):
         """Test that lldb can read the process information from an ppc64le linux core file."""
         self.do_test("linux-ppc64le", self._ppc64le_pid, self._ppc64le_regions,
                      "linux-ppc64le.ou")
 
     @skipIfLLVMTargetMissing("X86")
-    @skipIfReproducer  # lldb::FileSP used in typemap cannot be instrumented.
     def test_x86_64(self):
         """Test that lldb can read the process information from an x86_64 linux core file."""
         self.do_test("linux-x86_64", self._x86_64_pid, self._x86_64_regions,
                      "a.out")
 
     @skipIfLLVMTargetMissing("SystemZ")
-    @skipIfReproducer  # lldb::FileSP used in typemap cannot be instrumented.
     def test_s390x(self):
         """Test that lldb can read the process information from an s390x linux core file."""
         self.do_test("linux-s390x", self._s390x_pid, self._s390x_regions,
                      "a.out")
 
     @skipIfLLVMTargetMissing("X86")
-    @skipIfReproducer  # lldb::FileSP used in typemap cannot be instrumented.
     def test_same_pid_running(self):
         """Test that we read the information from the core correctly even if we have a running
         process with the same PID around"""
@@ -95,7 +89,6 @@ def test_same_pid_running(self):
                      self._x86_64_regions, "a.out")
 
     @skipIfLLVMTargetMissing("X86")
-    @skipIfReproducer  # lldb::FileSP used in typemap cannot be instrumented.
     def test_two_cores_same_pid(self):
         """Test that we handle the situation if we have two core files with the same PID
         around"""
@@ -127,7 +120,6 @@ def test_two_cores_same_pid(self):
 
     @skipIfLLVMTargetMissing("X86")
     @skipIfWindows
-    @skipIfReproducer
     def test_read_memory(self):
         """Test that we are able to read as many bytes as available"""
         target = self.dbg.CreateTarget("linux-x86_64.out")
@@ -192,7 +184,6 @@ def test_FPR_SSE(self):
                         substrs=["{} = {}".format(regname, value)])
 
     @skipIfLLVMTargetMissing("X86")
-    @skipIfReproducer  # lldb::FileSP used in typemap cannot be instrumented.
     def test_i386_sysroot(self):
         """Test that lldb can find the exe for an i386 linux core file using the sysroot."""
 
@@ -219,7 +210,6 @@ def test_i386_sysroot(self):
 
     @skipIfLLVMTargetMissing("X86")
     @skipIfWindows
-    @skipIfReproducer  # lldb::FileSP used in typemap cannot be instrumented.
     def test_x86_64_sysroot(self):
         """Test that sysroot has more priority then local filesystem."""
 

diff  --git a/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py b/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py
index 39e96a65f7389..1acd2262d9074 100644
--- a/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py
+++ b/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py
@@ -29,7 +29,6 @@ def process_from_yaml(self, yaml_file):
         self.process = self.target.LoadCore(minidump_path)
         return self.process
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def check_state(self):
         with open(os.devnull) as devnul:
             # sanitize test output
@@ -345,7 +344,6 @@ def test_deeper_stack_in_minidump(self):
                                   "linux-x86_64_not_crashed.dmp",
                                   self._linux_x86_64_not_crashed_pid)
 
-    @skipIfReproducer # VFS is a snapshot.
     def do_change_pid_in_minidump(self, core, newcore, offset, oldpid, newpid):
         """ This assumes that the minidump is breakpad generated on Linux -
         meaning that the PID in the file will be an ascii string part of

diff  --git a/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py b/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
index dc28ec6d7accb..bb4e61ba70b46 100644
--- a/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
+++ b/lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
@@ -12,7 +12,6 @@
 from lldbsuite.test import lldbutil
 
 
- at skipIfReproducer # Modules are not orphaned and it finds the module with the same UUID from test_partial_uuid_match.
 class MiniDumpUUIDTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)

diff  --git a/lldb/test/API/functionalities/postmortem/netbsd-core/TestNetBSDCore.py b/lldb/test/API/functionalities/postmortem/netbsd-core/TestNetBSDCore.py
index 6ecd267353447..f967a57e4ea71 100644
--- a/lldb/test/API/functionalities/postmortem/netbsd-core/TestNetBSDCore.py
+++ b/lldb/test/API/functionalities/postmortem/netbsd-core/TestNetBSDCore.py
@@ -159,13 +159,11 @@ def check_stack(self, process, pid, filename):
         self.check_backtrace(thread, filename, backtrace)
 
     @skipIfLLVMTargetMissing("AArch64")
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_aarch64(self):
         """Test single-threaded aarch64 core dump."""
         self.do_test("1lwp_SIGSEGV.aarch64", pid=8339, region_count=32)
 
     @skipIfLLVMTargetMissing("X86")
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_amd64(self):
         """Test single-threaded amd64 core dump."""
         self.do_test("1lwp_SIGSEGV.amd64", pid=693, region_count=21)
@@ -191,13 +189,11 @@ def check_stack(self, process, pid, filename):
         self.assertEqual(thread.GetStopReasonDataAtIndex(0), 0)
 
     @skipIfLLVMTargetMissing("AArch64")
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_aarch64(self):
         """Test double-threaded aarch64 core dump where thread 2 is signalled."""
         self.do_test("2lwp_t2_SIGSEGV.aarch64", pid=14142, region_count=31)
 
     @skipIfLLVMTargetMissing("X86")
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_amd64(self):
         """Test double-threaded amd64 core dump where thread 2 is signalled."""
         self.do_test("2lwp_t2_SIGSEGV.amd64", pid=622, region_count=24)
@@ -223,13 +219,11 @@ def check_stack(self, process, pid, filename):
         self.assertEqual(thread.GetStopReasonDataAtIndex(0), signal.SIGSEGV)
 
     @skipIfLLVMTargetMissing("AArch64")
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_aarch64(self):
         """Test double-threaded aarch64 core dump where process is signalled."""
         self.do_test("2lwp_process_SIGSEGV.aarch64", pid=1403, region_count=30)
 
     @skipIfLLVMTargetMissing("X86")
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_amd64(self):
         """Test double-threaded amd64 core dump where process is signalled."""
         self.do_test("2lwp_process_SIGSEGV.amd64", pid=665, region_count=24)

diff  --git a/lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py b/lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py
index 75e0b9332fbe1..dc75d4fa4020a 100644
--- a/lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py
+++ b/lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py
@@ -24,7 +24,6 @@ def setUp(self):
     @skipIfWindows  # setpgid call does not exist on Windows
     @expectedFailureAndroid("http://llvm.org/pr23762", api_levels=[16])
     @expectedFailureNetBSD
-    @skipIfReproducer # File synchronization is not supported during replay.
     @skipIftvOS # fork not available on tvOS.
     @skipIfwatchOS # fork not available on watchOS.
     def test_setpgid(self):

diff  --git a/lldb/test/API/functionalities/reproducers/attach/TestReproducerAttach.py b/lldb/test/API/functionalities/reproducers/attach/TestReproducerAttach.py
index a1cfcd20013e4..8e6dcea957f0d 100644
--- a/lldb/test/API/functionalities/reproducers/attach/TestReproducerAttach.py
+++ b/lldb/test/API/functionalities/reproducers/attach/TestReproducerAttach.py
@@ -19,7 +19,6 @@ class ReproducerAttachTestCase(TestBase):
     @skipIfWindows
     @skipIfRemote
     @skipIfiOSSimulator
-    @skipIfReproducer
     def test_reproducer_attach(self):
         """Test thread creation after process attach."""
         exe = '%s_%d' % (self.testMethodName, os.getpid())

diff  --git a/lldb/test/API/functionalities/reproducers/fs-case-sensitivity/TestReproducerFSCaseSensitivity.py b/lldb/test/API/functionalities/reproducers/fs-case-sensitivity/TestReproducerFSCaseSensitivity.py
index c4f8329675537..e6bcd4418bb84 100644
--- a/lldb/test/API/functionalities/reproducers/fs-case-sensitivity/TestReproducerFSCaseSensitivity.py
+++ b/lldb/test/API/functionalities/reproducers/fs-case-sensitivity/TestReproducerFSCaseSensitivity.py
@@ -19,7 +19,6 @@ class ReproducerFileSystemSensitivityTestCase(TestBase):
     @skipIfWindows
     @skipIfRemote
     @skipIfiOSSimulator
-    @skipIfReproducer
     def test_reproducer_attach(self):
         # The reproducer output path. Note that this is on purpose a lower-case
         # file name. See the case-sensitivity check below.

diff  --git a/lldb/test/API/functionalities/signal/TestSendSignal.py b/lldb/test/API/functionalities/signal/TestSendSignal.py
index 555338050081b..f1ccc6d024fb3 100644
--- a/lldb/test/API/functionalities/signal/TestSendSignal.py
+++ b/lldb/test/API/functionalities/signal/TestSendSignal.py
@@ -20,7 +20,6 @@ def setUp(self):
 
     @expectedFailureNetBSD(bugnumber='llvm.org/pr43959')
     @skipIfWindows  # Windows does not support signals
-    @skipIfReproducer # FIXME: Unexpected packet during (active) 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 de91105e3f617..419e46f05a254 100644
--- a/lldb/test/API/functionalities/step_scripted/TestStepScripted.py
+++ b/lldb/test/API/functionalities/step_scripted/TestStepScripted.py
@@ -7,7 +7,6 @@
 from lldbsuite.test.decorators import *
 from lldbsuite.test.lldbtest import *
 
- at skipIfReproducer # FIXME: Unexpected packet during (active) replay
 class StepScriptedTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)

diff  --git a/lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py b/lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
index 97bf151b60a74..63b11f9e8fe1e 100644
--- a/lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
+++ b/lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
@@ -45,7 +45,6 @@ def setUp(self):
         self.main_source_file = lldb.SBFileSpec("main.c")
         self.build()
 
-    @skipIfReproducer # Timeouts are not currently modeled.
     def exiting_expression_test(self, before_one_thread_timeout , unwind):
         """function_to_call sleeps for g_timeout microseconds, then calls pthread_exit.
            This test calls function_to_call with an overall timeout of 500

diff  --git a/lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py b/lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py
index 9f0d562e8afcf..724a4236a7c53 100644
--- a/lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py
+++ b/lldb/test/API/iohandler/resize/TestIOHandlerResizeNoEditline.py
@@ -8,7 +8,6 @@ class TestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
     @no_debug_info_test
-    @skipIfReproducer
     @skipIfWindows
     def test_resize_no_editline(self):
         """ Tests terminal resizing if the editline isn't used. """

diff  --git a/lldb/test/API/lang/c/modules/TestCModules.py b/lldb/test/API/lang/c/modules/TestCModules.py
index c7f0781ecb6e5..7c85f613eca59 100644
--- a/lldb/test/API/lang/c/modules/TestCModules.py
+++ b/lldb/test/API/lang/c/modules/TestCModules.py
@@ -44,8 +44,6 @@ def test_expr(self):
 
         # Enable logging of the imported AST.
         log_file = self.getBuildArtifact("lldb-ast-log.txt")
-        if configuration.is_reproducer_replay():
-            log_file = self.getReproducerRemappedPath(log_file)
         self.runCmd("log enable lldb ast -f '%s'" % log_file)
 
         self.expect(

diff  --git a/lldb/test/API/lang/cpp/accelerator-table/TestCPPAccelerator.py b/lldb/test/API/lang/cpp/accelerator-table/TestCPPAccelerator.py
index c48ecfe97b485..3600de758ff3a 100644
--- a/lldb/test/API/lang/cpp/accelerator-table/TestCPPAccelerator.py
+++ b/lldb/test/API/lang/cpp/accelerator-table/TestCPPAccelerator.py
@@ -15,8 +15,6 @@ def test(self):
         self.build()
 
         logfile = self.getBuildArtifact('dwarf.log')
-        if configuration.is_reproducer_replay():
-            logfile = self.getReproducerRemappedPath(logfile)
 
         self.expect('log enable dwarf lookups -f' + logfile)
         target, process, thread, bkpt = lldbutil.run_to_source_breakpoint(

diff  --git a/lldb/test/API/lang/cpp/member-and-local-vars-with-same-name/TestMembersAndLocalsWithSameName.py b/lldb/test/API/lang/cpp/member-and-local-vars-with-same-name/TestMembersAndLocalsWithSameName.py
index ba3215d67254b..ac2b3b0171af6 100644
--- a/lldb/test/API/lang/cpp/member-and-local-vars-with-same-name/TestMembersAndLocalsWithSameName.py
+++ b/lldb/test/API/lang/cpp/member-and-local-vars-with-same-name/TestMembersAndLocalsWithSameName.py
@@ -266,14 +266,10 @@ def _test_globals(self):
 
     def enable_expression_log(self):
         log_file = self.getBuildArtifact("expr.log")
-        if configuration.is_reproducer_replay():
-            log_file = self.getReproducerRemappedPath(log_file)
         self.runCmd("log enable  -f '%s' lldb expr" % (log_file))
 
     def disable_expression_log_and_check_for_locals(self, variables):
         log_file = self.getBuildArtifact("expr.log")
-        if configuration.is_reproducer_replay():
-            log_file = self.getReproducerRemappedPath(log_file)
         self.runCmd("log disable lldb expr")
         local_var_regex = re.compile(r".*__lldb_local_vars::(.*);")
         matched = []

diff  --git a/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py b/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
index 765bf3b2b492e..38b8cb5f0b61a 100644
--- a/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
+++ b/lldb/test/API/lang/cpp/thread_local/TestThreadLocal.py
@@ -30,19 +30,9 @@ def test_thread_local(self):
         self.expect_expr("*tl_global_ptr",
                          result_type="int", result_value="45")
 
-        # Create the filespec by which to locate our a.out module.
-        #
-        #  - Use the absolute path to get the module for the current variant.
-        #  - Use the relative path for reproducers. The modules are never
-        #    orphaned because the SB objects are leaked intentionally. This
-        #    causes LLDB to reuse the same module for every variant, because the
-        #    UUID is the same for all the inferiors. FindModule below only
-        #    compares paths and is oblivious to the fact that the UUIDs are the
-        #    same.
-        if configuration.is_reproducer():
-            filespec = lldb.SBFileSpec('a.out', False)
-        else:
-            filespec = lldb.SBFileSpec(exe, False)
+        # Create the filespec by which to locate our a.out module. Use the
+        # absolute path to get the module for the current variant.
+        filespec = lldb.SBFileSpec(exe, False)
 
         # Now see if we emit the correct error when the TLS is not yet
         # initialized. Let's set a breakpoint on the first instruction

diff  --git a/lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py b/lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
index 0bd9fbe50a386..9115d5a0685f3 100644
--- a/lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
+++ b/lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
@@ -18,7 +18,6 @@ class RuntimeTypesTestCase(TestBase):
         oslist=["macosx"],
         debug_info="gmodules",
         bugnumber="llvm.org/pr27862")
-    @skipIfReproducer # FIXME: Unexpected packet during (active) replay
     def test_break(self):
         """Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
         self.build()

diff  --git a/lldb/test/API/lang/objc/foundation/TestSymbolTable.py b/lldb/test/API/lang/objc/foundation/TestSymbolTable.py
index 63482a52f6b75..7434258baa465 100644
--- a/lldb/test/API/lang/objc/foundation/TestSymbolTable.py
+++ b/lldb/test/API/lang/objc/foundation/TestSymbolTable.py
@@ -37,19 +37,9 @@ def test_with_python_api(self):
             None, None, self.get_process_working_directory())
         self.assertTrue(process, PROCESS_IS_VALID)
 
-        # Create the filespec by which to locate our a.out module.
-        #
-        #  - Use the absolute path to get the module for the current variant.
-        #  - Use the relative path for reproducers. The modules are never
-        #    orphaned because the SB objects are leaked intentionally. This
-        #    causes LLDB to reuse the same module for every variant, because the
-        #    UUID is the same for all the inferiors. FindModule below only
-        #    compares paths and is oblivious to the fact that the UUIDs are the
-        #    same.
-        if configuration.is_reproducer():
-            filespec = lldb.SBFileSpec('a.out', False)
-        else:
-            filespec = lldb.SBFileSpec(exe, False)
+        # Create the filespec by which to locate our a.out module. Use the
+        # absolute path to get the module for the current variant.
+        filespec = lldb.SBFileSpec(exe, False)
 
         module = target.FindModule(filespec)
         self.assertTrue(module, VALID_MODULE)

diff  --git a/lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py b/lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
index 9fcd31cebf7e9..f52c73030409c 100644
--- a/lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
+++ b/lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
@@ -29,7 +29,6 @@ def setUp(self):
     @skipIf(
         debug_info=no_match("dsym"),
         bugnumber="This test requires a stripped binary and a dSYM")
-    @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def test_expr_stripped(self):
         if self.getArchitecture() == 'i386':
             self.skipTest("requires modern objc runtime")
@@ -37,7 +36,6 @@ def test_expr_stripped(self):
             self.build()
             self.expr(True)
 
-    @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def test_expr(self):
         if self.getArchitecture() == 'i386':
             self.skipTest("requires modern objc runtime")

diff  --git a/lldb/test/API/lang/objc/modules-hash-mismatch/TestClangModulesHashMismatch.py b/lldb/test/API/lang/objc/modules-hash-mismatch/TestClangModulesHashMismatch.py
index 4dd8a7ad7eb17..bb5dd366b377a 100644
--- a/lldb/test/API/lang/objc/modules-hash-mismatch/TestClangModulesHashMismatch.py
+++ b/lldb/test/API/lang/objc/modules-hash-mismatch/TestClangModulesHashMismatch.py
@@ -31,8 +31,6 @@ def test_expr(self):
         self.assertTrue(os.path.isdir(mod_cache), "module cache exists")
 
         logfile = self.getBuildArtifact("host.log")
-        if configuration.is_reproducer_replay():
-            logfile = self.getReproducerRemappedPath(logfile)
         self.runCmd("log enable -v -f %s lldb host" % logfile)
         target, _, _, _ = lldbutil.run_to_source_breakpoint(
             self, "break here", lldb.SBFileSpec("main.m"))

diff  --git a/lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py b/lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py
index 593b696706783..82adfd954e89b 100644
--- a/lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py
+++ b/lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py
@@ -13,7 +13,6 @@ class TestClangModuleUpdate(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
     @skipIf(debug_info=no_match(["gmodules"]))
-    @skipIfReproducer # VFS is a snapshot.
     @skipIfDarwin # rdar://76540904
     def test_expr(self):
         with open(self.getBuildArtifact("module.modulemap"), "w") as f:

diff  --git a/lldb/test/API/lang/objc/modules/TestObjCModules.py b/lldb/test/API/lang/objc/modules/TestObjCModules.py
index e80705f4ebce6..072b306c191af 100644
--- a/lldb/test/API/lang/objc/modules/TestObjCModules.py
+++ b/lldb/test/API/lang/objc/modules/TestObjCModules.py
@@ -21,7 +21,6 @@ def setUp(self):
         self.line = line_number('main.m', '// Set breakpoint 0 here.')
 
     @skipIf(macos_version=["<", "10.12"])
-    @skipIfReproducer # FIXME: Unexpected packet during (active) 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 d46bd01f5fd33..6e32a6711016f 100644
--- a/lldb/test/API/lang/objc/print-obj/TestPrintObj.py
+++ b/lldb/test/API/lang/objc/print-obj/TestPrintObj.py
@@ -23,7 +23,6 @@ def setUp(self):
         # Find the line numbers to break at.
         self.line = line_number(self.source, '// Set a breakpoint here.')
 
-    @skipIfReproducer # FIXME: Unexpected packet during (active) 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/lit.cfg.py b/lldb/test/API/lit.cfg.py
index 9f63dc144a07e..44d5028717b28 100644
--- a/lldb/test/API/lit.cfg.py
+++ b/lldb/test/API/lit.cfg.py
@@ -129,18 +129,6 @@ def delete_module_cache(path):
     lit_config.warning("unable to inject shared library path on '{}'".format(
         platform.system()))
 
-# Support running the test suite under the lldb-repro wrapper. This makes it
-# possible to capture a test suite run and then rerun all the test from the
-# just captured reproducer.
-lldb_repro_mode = lit_config.params.get('lldb-run-with-repro', None)
-if lldb_repro_mode:
-  lit_config.note("Running API tests in {} mode.".format(lldb_repro_mode))
-  mkdir_p(config.lldb_reproducer_directory)
-  if lldb_repro_mode == 'capture':
-    config.available_features.add('lldb-repro-capture')
-  elif lldb_repro_mode == 'replay':
-    config.available_features.add('lldb-repro-replay')
-
 lldb_use_simulator = lit_config.params.get('lldb-run-with-simulator', None)
 if lldb_use_simulator:
   if lldb_use_simulator == "ios":

diff  --git a/lldb/test/API/lit.site.cfg.py.in b/lldb/test/API/lit.site.cfg.py.in
index 49ea94aacd119..82cde5c252f77 100644
--- a/lldb/test/API/lit.site.cfg.py.in
+++ b/lldb/test/API/lit.site.cfg.py.in
@@ -18,7 +18,6 @@ config.shared_libs = @LLVM_ENABLE_SHARED_LIBS@
 config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
 config.target_triple = "@TARGET_TRIPLE@"
 config.lldb_build_directory = "@LLDB_TEST_BUILD_DIRECTORY@"
-config.lldb_reproducer_directory = os.path.join("@LLDB_TEST_BUILD_DIRECTORY@", "reproducers")
 config.python_executable = "@Python3_EXECUTABLE@"
 config.dotest_args_str = "@LLDB_DOTEST_ARGS@"
 config.lldb_enable_python = @LLDB_ENABLE_PYTHON@

diff  --git a/lldb/test/API/lldbtest.py b/lldb/test/API/lldbtest.py
index a03390ee38787..847f9535d22c5 100644
--- a/lldb/test/API/lldbtest.py
+++ b/lldb/test/API/lldbtest.py
@@ -55,15 +55,6 @@ def execute(self, test, litConfig):
         # python exe as the first parameter of the command.
         cmd = [executable] + self.dotest_cmd + [testPath, '-p', testFile]
 
-        if 'lldb-repro-capture' in test.config.available_features or \
-           'lldb-repro-replay' in test.config.available_features:
-            reproducer_path = os.path.join(
-                test.config.lldb_reproducer_directory, testFile)
-            if 'lldb-repro-capture' in test.config.available_features:
-                cmd.extend(['--capture-path', reproducer_path])
-            else:
-                cmd.extend(['--replay-path', reproducer_path])
-
         timeoutInfo = None
         try:
             out, err, exitCode = lit.util.executeCommand(

diff  --git a/lldb/test/API/macosx/dyld-trie-symbols/TestDyldTrieSymbols.py b/lldb/test/API/macosx/dyld-trie-symbols/TestDyldTrieSymbols.py
index d4073a9ed02d9..3455f21392dc4 100644
--- a/lldb/test/API/macosx/dyld-trie-symbols/TestDyldTrieSymbols.py
+++ b/lldb/test/API/macosx/dyld-trie-symbols/TestDyldTrieSymbols.py
@@ -90,23 +90,20 @@ def test_dyld_trie_symbols(self):
         syms_ctx = stripped_target.FindSymbols("SourceBase")
         self.assertEqual(syms_ctx.GetSize(), 2)
 
-        # The next part if not deterministic and potentially causes replay to
-        # fail when the order is 
diff erent during capture and replay.
-        if not configuration.is_reproducer():
-            sym1 = syms_ctx.GetContextAtIndex(0).GetSymbol()
-            sym2 = syms_ctx.GetContextAtIndex(1).GetSymbol()
-
-            # one of these should be a lldb.eSymbolTypeObjCClass, the other
-            # should be lldb.eSymbolTypeObjCMetaClass.
-            if sym1.GetType() == lldb.eSymbolTypeObjCMetaClass:
-                self.assertEqual(sym2.GetType(), lldb.eSymbolTypeObjCClass)
+        sym1 = syms_ctx.GetContextAtIndex(0).GetSymbol()
+        sym2 = syms_ctx.GetContextAtIndex(1).GetSymbol()
+
+        # one of these should be a lldb.eSymbolTypeObjCClass, the other
+        # should be lldb.eSymbolTypeObjCMetaClass.
+        if sym1.GetType() == lldb.eSymbolTypeObjCMetaClass:
+            self.assertEqual(sym2.GetType(), lldb.eSymbolTypeObjCClass)
+        else:
+            if sym1.GetType() == lldb.eSymbolTypeObjCClass:
+                self.assertEqual(sym2.GetType(), lldb.eSymbolTypeObjCMetaClass)
             else:
-                if sym1.GetType() == lldb.eSymbolTypeObjCClass:
-                    self.assertEqual(sym2.GetType(), lldb.eSymbolTypeObjCMetaClass)
-                else:
-                    self.assertTrue(sym1.GetType() == lldb.eSymbolTypeObjCMetaClass or sym1.GetType() == lldb.eSymbolTypeObjCClass)
-
-            syms_ctx = stripped_target.FindSymbols("SourceDerived._derivedValue")
-            self.assertEqual(syms_ctx.GetSize(), 1)
-            sym = syms_ctx.GetContextAtIndex(0).GetSymbol()
-            self.assertEqual(sym.GetType(), lldb.eSymbolTypeObjCIVar)
+                self.assertTrue(sym1.GetType() == lldb.eSymbolTypeObjCMetaClass or sym1.GetType() == lldb.eSymbolTypeObjCClass)
+
+        syms_ctx = stripped_target.FindSymbols("SourceDerived._derivedValue")
+        self.assertEqual(syms_ctx.GetSize(), 1)
+        sym = syms_ctx.GetContextAtIndex(0).GetSymbol()
+        self.assertEqual(sym.GetType(), lldb.eSymbolTypeObjCIVar)

diff  --git a/lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename/TestBundleWithDotInFilename.py b/lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename/TestBundleWithDotInFilename.py
index e12a638f9c03f..76f7ee85f5013 100644
--- a/lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename/TestBundleWithDotInFilename.py
+++ b/lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename/TestBundleWithDotInFilename.py
@@ -32,7 +32,6 @@ def tearDown(self):
     @skipUnlessDarwin
     # This test is explicitly a dSYM test, it doesn't need to run for any other config.
     @skipIf(debug_info=no_match(["dsym"]))
-    @skipIfReproducer # File synchronization is not supported during replay.
     def test_attach_and_check_dsyms(self):
         """Test attach to binary, see if the bundle dSYM is found"""
         exe = self.getBuildArtifact(exe_name)

diff  --git a/lldb/test/API/macosx/find-dsym/deep-bundle/TestDeepBundle.py b/lldb/test/API/macosx/find-dsym/deep-bundle/TestDeepBundle.py
index 358a4b70d2f5e..bb32a90e09814 100644
--- a/lldb/test/API/macosx/find-dsym/deep-bundle/TestDeepBundle.py
+++ b/lldb/test/API/macosx/find-dsym/deep-bundle/TestDeepBundle.py
@@ -31,7 +31,6 @@ def tearDown(self):
     @skipUnlessDarwin
     # This test is explicitly a dSYM test, it doesn't need to run for any other config.
     @skipIf(debug_info=no_match(["dsym"]))
-    @skipIfReproducer # File synchronization is not supported during replay.
     def test_attach_and_check_dsyms(self):
         """Test attach to binary, see if the framework dSYM is found"""
         exe = self.getBuildArtifact(exe_name)

diff  --git a/lldb/test/API/macosx/function-starts/TestFunctionStarts.py b/lldb/test/API/macosx/function-starts/TestFunctionStarts.py
index e8f540b5a5fc7..5ef06f4ab568f 100644
--- a/lldb/test/API/macosx/function-starts/TestFunctionStarts.py
+++ b/lldb/test/API/macosx/function-starts/TestFunctionStarts.py
@@ -19,7 +19,6 @@ class FunctionStartsTestCase(TestBase):
 
     @skipIfRemote
     @skipUnlessDarwin
-    @skipIfReproducer # File synchronization is not supported during replay.
     def test_function_starts_binary(self):
         """Test that we make synthetic symbols when we have the binary."""
         self.build(dictionary={'CODESIGN': ''}) # Binary is getting stripped later.
@@ -27,7 +26,6 @@ def test_function_starts_binary(self):
 
     @skipIfRemote
     @skipUnlessDarwin
-    @skipIfReproducer # File synchronization is not supported during replay.
     def test_function_starts_no_binary(self):
         """Test that we make synthetic symbols when we don't have the binary"""
         self.build(dictionary={'CODESIGN': ''}) # Binary is getting stripped later.

diff  --git a/lldb/test/API/macosx/macCatalyst/TestMacCatalyst.py b/lldb/test/API/macosx/macCatalyst/TestMacCatalyst.py
index 534be5594051c..4114f4c941687 100644
--- a/lldb/test/API/macosx/macCatalyst/TestMacCatalyst.py
+++ b/lldb/test/API/macosx/macCatalyst/TestMacCatalyst.py
@@ -13,7 +13,6 @@ class TestMacCatalyst(TestBase):
     @skipIf(macos_version=["<", "10.15"])
     @skipUnlessDarwin
     @skipIfDarwinEmbedded
-    @skipIfReproducer # This is hitting https://bugs.python.org/issue22393
     def test_macabi(self):
         """Test the x86_64-apple-ios-macabi target linked against a macos dylib"""
         self.build()

diff  --git a/lldb/test/API/macosx/macCatalystAppMacOSFramework/TestMacCatalystAppWithMacOSFramework.py b/lldb/test/API/macosx/macCatalystAppMacOSFramework/TestMacCatalystAppWithMacOSFramework.py
index d02707b581efd..989bf6d6e3301 100644
--- a/lldb/test/API/macosx/macCatalystAppMacOSFramework/TestMacCatalystAppWithMacOSFramework.py
+++ b/lldb/test/API/macosx/macCatalystAppMacOSFramework/TestMacCatalystAppWithMacOSFramework.py
@@ -15,7 +15,6 @@ class TestMacCatalystAppWithMacOSFramework(TestBase):
     @skipIfDarwinEmbedded
     # There is a Clang driver change missing on llvm.org.
     @expectedFailureAll(bugnumber="rdar://problem/54986190>")
-    @skipIfReproducer # This is hitting https://bugs.python.org/issue22393
     def test(self):
         """Test the x86_64-apple-ios-macabi target linked against a macos dylib"""
         self.build()

diff  --git a/lldb/test/API/macosx/posix_spawn/TestLaunchProcessPosixSpawn.py b/lldb/test/API/macosx/posix_spawn/TestLaunchProcessPosixSpawn.py
index 1215570a1290f..4893c137c3227 100644
--- a/lldb/test/API/macosx/posix_spawn/TestLaunchProcessPosixSpawn.py
+++ b/lldb/test/API/macosx/posix_spawn/TestLaunchProcessPosixSpawn.py
@@ -42,7 +42,6 @@ def run_arch(self, exe, arch):
     @skipUnlessDarwin
     @skipIfDarwinEmbedded
     @skipTestIfFn(no_haswell)
-    @skipIfReproducer # Test relies on inferior output
     def test_haswell(self):
         self.build()
         exe = self.getBuildArtifact("fat.out")
@@ -52,7 +51,6 @@ def test_haswell(self):
     @skipUnlessDarwin
     @skipIfDarwinEmbedded
     @skipTestIfFn(no_apple_silicon)
-    @skipIfReproducer # Test relies on inferior output
     def test_apple_silicon(self):
         self.build()
         exe = self.getBuildArtifact("fat.out")

diff  --git a/lldb/test/API/macosx/profile_vrs_detach/TestDetachVrsProfile.py b/lldb/test/API/macosx/profile_vrs_detach/TestDetachVrsProfile.py
index cfb6e24726532..95d73de9d6577 100644
--- a/lldb/test/API/macosx/profile_vrs_detach/TestDetachVrsProfile.py
+++ b/lldb/test/API/macosx/profile_vrs_detach/TestDetachVrsProfile.py
@@ -23,7 +23,6 @@ class TestDetachVrsProfile(TestBase):
 
     @skipUnlessDarwin
     @skipIfOutOfTreeDebugserver
-    @skipIfReproducer
     def test_profile_and_detach(self):
         """There can be many tests in a test case - describe this test here."""
         self.build()

diff  --git a/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py b/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py
index 301919dea3b2a..4b925ad5f77d5 100644
--- a/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py
+++ b/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py
@@ -6,7 +6,6 @@
 import unittest2
 
 
- at skipIfReproducer
 class TestSimulatorPlatformLaunching(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)

diff  --git a/lldb/test/API/macosx/thread-names/TestInterruptThreadNames.py b/lldb/test/API/macosx/thread-names/TestInterruptThreadNames.py
index f01a9fdc61c56..98e6aff5b4023 100644
--- a/lldb/test/API/macosx/thread-names/TestInterruptThreadNames.py
+++ b/lldb/test/API/macosx/thread-names/TestInterruptThreadNames.py
@@ -14,7 +14,6 @@ class TestInterruptThreadNames(TestBase):
 
     @skipUnlessDarwin
     @add_test_categories(['pyapi'])
-    @skipIfReproducer # While loop with non fixed number of iterations.
     def test_with_python_api(self):
         """Test that we get thread names when interrupting a process."""
         self.build()

diff  --git a/lldb/test/API/macosx/version_zero/TestGetVersionZeroVersion.py b/lldb/test/API/macosx/version_zero/TestGetVersionZeroVersion.py
index 5f9772b8fb20e..af69425db683f 100644
--- a/lldb/test/API/macosx/version_zero/TestGetVersionZeroVersion.py
+++ b/lldb/test/API/macosx/version_zero/TestGetVersionZeroVersion.py
@@ -19,7 +19,6 @@ class TestGetVersionForZero(TestBase):
     # each debug info format.
     NO_DEBUG_INFO_TESTCASE = True
 
-    @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def test_get_version_zero(self):
         """Read in a library with a version of 0.0.0.  Test SBModule::GetVersion"""
         self.yaml2obj("libDylib.dylib.yaml", self.getBuildArtifact("libDylib.dylib"))

diff  --git a/lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py b/lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
index d69e13f1009c6..cbfc5667a0152 100644
--- a/lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
+++ b/lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
@@ -104,7 +104,6 @@ def test_SBCompileUnit(self):
         import sb_compileunit
         sb_compileunit.fuzz_obj(obj)
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_SBDebugger(self):
         obj = lldb.SBDebugger()
         if self.TraceOn():
@@ -165,7 +164,6 @@ def test_SBFunction(self):
         import sb_function
         sb_function.fuzz_obj(obj)
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_SBFile(self):
         sbf = lldb.SBFile()
         self.assertFalse(sbf.IsValid())

diff  --git a/lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py b/lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py
index d6e0b32f133ea..3dbb090ffe5c3 100644
--- a/lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py
+++ b/lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py
@@ -18,7 +18,6 @@ class DisassembleRawDataTestCase(TestBase):
 
     @no_debug_info_test
     @skipIfRemote
-    @skipIfReproducer # GetInstructions is not instrumented.
     def test_disassemble_raw_data(self):
         """Test disassembling raw bytes with the API."""
         # Create a target from the debugger.

diff  --git a/lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py b/lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
index 9260b720a83f4..27bd64c080472 100644
--- a/lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
+++ b/lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
@@ -19,7 +19,6 @@ class Disassemble_VST1_64(TestBase):
 
     @no_debug_info_test
     @skipIfLLVMTargetMissing("ARM")
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_disassemble_invalid_vst_1_64_raw_data(self):
         """Test disassembling invalid vst1.64 raw bytes with the API."""
         # Create a target from the debugger.

diff  --git a/lldb/test/API/python_api/file_handle/TestFileHandle.py b/lldb/test/API/python_api/file_handle/TestFileHandle.py
index 286b3ee6d7ee4..142fce28309cc 100644
--- a/lldb/test/API/python_api/file_handle/TestFileHandle.py
+++ b/lldb/test/API/python_api/file_handle/TestFileHandle.py
@@ -119,7 +119,6 @@ def handleCmd(self, cmd, check=True, collect_result=True):
         return ret.GetOutput()
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_out_script(self):
         with open(self.out_filename, 'w') as f:
             self.dbg.SetOutputFileHandle(f, False)
@@ -134,7 +133,6 @@ def test_legacy_file_out_script(self):
             self.assertEqual(readStrippedLines(f), ['2', 'FOO'])
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_out(self):
         with open(self.out_filename, 'w') as f:
             self.dbg.SetOutputFileHandle(f, False)
@@ -142,7 +140,6 @@ def test_legacy_file_out(self):
         with open(self.out_filename, 'r') as f:
             self.assertIn('deadbeef', f.read())
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_err_with_get(self):
         with open(self.out_filename, 'w') as f:
             self.dbg.SetErrorFileHandle(f, False)
@@ -156,7 +153,6 @@ def test_legacy_file_err_with_get(self):
             self.assertTrue(re.search(r'FOOBAR', errors))
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_err(self):
         with open(self.out_filename, 'w') as f:
             self.dbg.SetErrorFileHandle(f, False)
@@ -165,7 +161,6 @@ def test_legacy_file_err(self):
             self.assertIn("is not a valid command", f.read())
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_error(self):
         with open(self.out_filename, 'w') as f:
             self.dbg.SetErrorFileHandle(f, False)
@@ -174,7 +169,6 @@ def test_legacy_file_error(self):
             errors = f.read()
             self.assertTrue(re.search(r'error:.*lolwut', errors))
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_type_errors(self):
         sbf = lldb.SBFile()
         self.assertRaises(Exception, sbf.Write, None)
@@ -184,7 +178,6 @@ def test_sbfile_type_errors(self):
         self.assertRaises(Exception, sbf.Read, u"ham sandwich")
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_fileno(self):
         with open(self.out_filename, 'w') as f:
             sbf = lldb.SBFile(f.fileno(), "w", False)
@@ -198,7 +191,6 @@ def test_sbfile_write_fileno(self):
             self.assertEqual(readStrippedLines(f), ['FOO', 'BAR'])
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write(self):
         with open(self.out_filename, 'w') as f:
             sbf = lldb.SBFile(f)
@@ -211,7 +203,6 @@ def test_sbfile_write(self):
             self.assertEqual(f.read().strip(), 'FOO')
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read_fileno(self):
         with open(self.out_filename, 'w') as f:
             f.write('FOO')
@@ -224,7 +215,6 @@ def test_sbfile_read_fileno(self):
             self.assertEqual(buffer[:n], b'FOO')
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read(self):
         with open(self.out_filename, 'w') as f:
             f.write('foo')
@@ -239,7 +229,6 @@ def test_sbfile_read(self):
             self.assertTrue(f.closed)
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_out(self):
         with open(self.out_filename, 'w') as f:
             sbf = lldb.SBFile(f.fileno(), "w", False)
@@ -253,7 +242,6 @@ def test_fileno_out(self):
             self.assertEqual(readStrippedLines(f), ['3', 'quux'])
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_help(self):
         with open(self.out_filename, 'w') as f:
             sbf = lldb.SBFile(f.fileno(), "w", False)
@@ -264,7 +252,6 @@ def test_fileno_help(self):
             self.assertTrue(re.search(r'Show a list of all debugger commands', f.read()))
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_help(self):
         with open(self.out_filename, 'w') as f:
             status = self.dbg.SetOutputFile(lldb.SBFile(f))
@@ -274,7 +261,6 @@ def test_help(self):
             self.assertIn('Show a list of all debugger commands', f.read())
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_immediate(self):
         with open(self.out_filename, 'w') as f:
             ret = lldb.SBCommandReturnObject()
@@ -291,7 +277,6 @@ def test_immediate(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_immediate_string(self):
         f = io.StringIO()
         ret = lldb.SBCommandReturnObject()
@@ -307,7 +292,6 @@ def test_immediate_string(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_immediate_sbfile_string(self):
         f = io.StringIO()
         ret = lldb.SBCommandReturnObject()
@@ -321,7 +305,6 @@ def test_immediate_sbfile_string(self):
         self.assertTrue(re.search(r'Show a list of all debugger commands', output))
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_inout(self):
         with open(self.in_filename, 'w') as f:
             f.write("help help\n")
@@ -344,7 +327,6 @@ def test_fileno_inout(self):
             self.assertTrue(re.search(r'Show a list of all debugger commands', f.read()))
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_inout(self):
         with open(self.in_filename, 'w') as f:
             f.write("help help\n")
@@ -362,7 +344,6 @@ def test_inout(self):
             self.assertIn('Show a list of all debugger commands', output)
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_binary_inout(self):
         with open(self.in_filename, 'w') as f:
             f.write("help help\n")
@@ -381,7 +362,6 @@ def test_binary_inout(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_string_inout(self):
         inf = io.StringIO("help help\np/x ~0\n")
         outf = io.StringIO()
@@ -398,7 +378,6 @@ def test_string_inout(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_bytes_inout(self):
         inf = io.BytesIO(b"help help\nhelp b\n")
         outf = io.BytesIO()
@@ -414,7 +393,6 @@ def test_bytes_inout(self):
         self.assertIn(b'Set a breakpoint', output)
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_error(self):
         with open(self.out_filename, 'w') as f:
 
@@ -432,7 +410,6 @@ def test_fileno_error(self):
             self.assertTrue(re.search(r'zork', errors))
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_replace_stdout(self):
         f = io.StringIO()
         with replace_stdout(f):
@@ -442,7 +419,6 @@ def test_replace_stdout(self):
             self.assertEqual(sys.stdout, f)
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_replace_stdout_with_nonfile(self):
         f = io.StringIO()
         with replace_stdout(f):
@@ -457,7 +433,6 @@ class Nothing():
         self.assertEqual(f.getvalue(), "FOO")
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_borrowed(self):
         with open(self.out_filename, 'w') as f:
             sbf = lldb.SBFile.Create(f, borrow=True)
@@ -473,7 +448,6 @@ def test_sbfile_write_borrowed(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_forced(self):
         with open(self.out_filename, 'w') as f:
             written = MutableBool(False)
@@ -494,7 +468,6 @@ def mywrite(x):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_forced_borrowed(self):
         with open(self.out_filename, 'w') as f:
             written = MutableBool(False)
@@ -515,7 +488,6 @@ def mywrite(x):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_string(self):
         f = io.StringIO()
         sbf = lldb.SBFile(f)
@@ -528,7 +500,6 @@ def test_sbfile_write_string(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_string_out(self):
         f = io.StringIO()
         status = self.dbg.SetOutputFile(f)
@@ -538,7 +509,6 @@ def test_string_out(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_string_error(self):
         f = io.StringIO()
         status = self.dbg.SetErrorFile(f)
@@ -549,7 +519,6 @@ def test_string_error(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_bytes(self):
         f = io.BytesIO()
         sbf = lldb.SBFile(f)
@@ -561,7 +530,6 @@ def test_sbfile_write_bytes(self):
         self.assertTrue(f.closed)
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read_string(self):
         f = io.StringIO('zork')
         sbf = lldb.SBFile(f)
@@ -572,7 +540,6 @@ def test_sbfile_read_string(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read_string_one_byte(self):
         f = io.StringIO('z')
         sbf = lldb.SBFile(f)
@@ -584,7 +551,6 @@ def test_sbfile_read_string_one_byte(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read_bytes(self):
         f = io.BytesIO(b'zork')
         sbf = lldb.SBFile(f)
@@ -595,7 +561,6 @@ def test_sbfile_read_bytes(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_out(self):
         with open(self.out_filename, 'w') as f:
             sbf = lldb.SBFile(f)
@@ -607,7 +572,6 @@ def test_sbfile_out(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_file_out(self):
         with open(self.out_filename, 'w') as f:
             status = self.dbg.SetOutputFile(f)
@@ -617,7 +581,6 @@ def test_file_out(self):
             self.assertEqual(f.read().strip(), '4')
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_error(self):
         with open(self.out_filename, 'w') as f:
             sbf = lldb.SBFile(f)
@@ -629,7 +592,6 @@ def test_sbfile_error(self):
             self.assertTrue(re.search(r'error:.*lolwut', errors))
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_file_error(self):
         with open(self.out_filename, 'w') as f:
             status = self.dbg.SetErrorFile(f)
@@ -640,7 +602,6 @@ def test_file_error(self):
             self.assertTrue(re.search(r'error:.*lolwut', errors))
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_exceptions(self):
         self.assertRaises(Exception, lldb.SBFile, None)
         self.assertRaises(Exception, lldb.SBFile, "ham sandwich")
@@ -659,7 +620,6 @@ def test_exceptions(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_exceptions_logged(self):
         messages = list()
         self.dbg.SetLoggingCallback(messages.append)
@@ -670,7 +630,6 @@ def test_exceptions_logged(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_flush(self):
         flushed = MutableBool(False)
         closed = MutableBool(False)
@@ -699,7 +658,6 @@ def test_flush(self):
         self.assertFalse(f.closed)
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_flush(self):
         with open(self.out_filename, 'w') as f:
             f.write("foo")
@@ -720,7 +678,6 @@ def test_fileno_flush(self):
             self.assertEqual(f.read(), 'foobar')
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_close(self):
         with open(self.out_filename, 'w') as f:
             status = self.dbg.SetOutputFile(f)
@@ -739,7 +696,6 @@ def test_close(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_stdout(self):
         f = io.StringIO()
         status = self.dbg.SetOutputFile(f)
@@ -748,7 +704,6 @@ def test_stdout(self):
         self.assertEqual(f.getvalue().strip().split(), ["foobar", "7"])
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_stdout_file(self):
         with open(self.out_filename, 'w') as f:
             status = self.dbg.SetOutputFile(f)
@@ -764,7 +719,6 @@ def test_stdout_file(self):
 
 
     @skipIf(py_version=['<', (3,)])
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_identity(self):
 
         f = io.StringIO()
@@ -819,7 +773,6 @@ def test_identity(self):
             self.assertEqual("foobar", f.read().strip())
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_back_and_forth(self):
         with open(self.out_filename, 'w') as f:
             # at each step here we're borrowing the file, so we have to keep
@@ -838,7 +791,6 @@ def i(sbf):
             self.assertEqual(list(range(10)), list(map(int, f.read().strip().split())))
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_set_filehandle_none(self):
         self.assertRaises(Exception, self.dbg.SetOutputFile, None)
         self.assertRaises(Exception, self.dbg.SetOutputFile, "ham sandwich")
@@ -876,7 +828,6 @@ def test_set_filehandle_none(self):
                 self.assertEqual(sbf.GetFile().fileno(), 0)
 
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbstream(self):
 
         with open(self.out_filename, 'w') as f:

diff  --git a/lldb/test/API/python_api/hello_world/TestHelloWorld.py b/lldb/test/API/python_api/hello_world/TestHelloWorld.py
index 0f616f44a7214..dd9245db62702 100644
--- a/lldb/test/API/python_api/hello_world/TestHelloWorld.py
+++ b/lldb/test/API/python_api/hello_world/TestHelloWorld.py
@@ -72,7 +72,6 @@ def test_with_process_launch_api(self):
         self.assertEqual(breakpoint.GetHitCount(), 1, BREAKPOINT_HIT_ONCE)
 
     @skipIfiOSSimulator
-    @skipIfReproducer # File synchronization is not supported during replay.
     def test_with_attach_to_process_with_id_api(self):
         """Create target, spawn a process, and attach to it with process id."""
         exe = '%s_%d'%(self.testMethodName, os.getpid())
@@ -104,7 +103,6 @@ def test_with_attach_to_process_with_id_api(self):
 
     @skipIfiOSSimulator
     @skipIfAsan # FIXME: Hangs indefinitely.
-    @skipIfReproducer # FIXME: Unexpected packet during (active) 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())

diff  --git a/lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py b/lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py
index 2db7fdd661337..ea3350f602ecb 100644
--- a/lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py
+++ b/lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py
@@ -10,7 +10,6 @@ class CommandRunInterpreterLegacyAPICase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def setUp(self):
         TestBase.setUp(self)
 
@@ -47,7 +46,6 @@ class CommandRunInterpreterAPICase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def setUp(self):
         TestBase.setUp(self)
 

diff  --git a/lldb/test/API/python_api/process/TestProcessAPI.py b/lldb/test/API/python_api/process/TestProcessAPI.py
index 790d794890d60..bfa1a22b9184d 100644
--- a/lldb/test/API/python_api/process/TestProcessAPI.py
+++ b/lldb/test/API/python_api/process/TestProcessAPI.py
@@ -23,7 +23,6 @@ def setUp(self):
             "main.cpp",
             "// Set break point at this line and check variable 'my_char'.")
 
-    @skipIfReproducer # SBProcess::ReadMemory is not instrumented.
     def test_read_memory(self):
         """Test Python SBProcess.ReadMemory() API."""
         self.build()
@@ -121,7 +120,6 @@ def test_read_memory(self):
             self.fail(
                 "Result from SBProcess.ReadUnsignedFromMemory() does not match our expected output")
 
-    @skipIfReproducer # SBProcess::WriteMemory is not instrumented.
     def test_write_memory(self):
         """Test Python SBProcess.WriteMemory() API."""
         self.build()
@@ -180,7 +178,6 @@ def test_write_memory(self):
             exe=False,
             startstr=b'a')
 
-    @skipIfReproducer # SBProcess::WriteMemory is not instrumented.
     def test_access_my_int(self):
         """Test access 'my_int' using Python SBProcess.GetByteOrder() and other APIs."""
         self.build()

diff  --git a/lldb/test/API/python_api/process/io/TestProcessIO.py b/lldb/test/API/python_api/process/io/TestProcessIO.py
index 312cc28aaa0ec..aae1dfe0be83f 100644
--- a/lldb/test/API/python_api/process/io/TestProcessIO.py
+++ b/lldb/test/API/python_api/process/io/TestProcessIO.py
@@ -15,7 +15,6 @@ class ProcessIOTestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
-    @skipIfReproducer
     def setup_test(self):
         # Get the full path to our executable to be debugged.
         self.exe = self.getBuildArtifact("process_io")

diff  --git a/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py b/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
index 0e5aa0ba97ba6..484baf5d75d1d 100644
--- a/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
+++ b/lldb/test/API/python_api/process/read-mem-cstring/TestReadMemCString.py
@@ -13,7 +13,6 @@ class TestReadMemCString(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
-    @skipIfReproducer # SBProcess::ReadCStringFromMemory is not instrumented.
     def test_read_memory_c_string(self):
         """Test corner case behavior of SBProcess::ReadCStringFromMemory"""
         self.build()

diff  --git a/lldb/test/API/python_api/sbdata/TestSBData.py b/lldb/test/API/python_api/sbdata/TestSBData.py
index 258ce519c880a..b845c0abd734d 100644
--- a/lldb/test/API/python_api/sbdata/TestSBData.py
+++ b/lldb/test/API/python_api/sbdata/TestSBData.py
@@ -20,7 +20,6 @@ def setUp(self):
         # Find the line number to break on inside main.cpp.
         self.line = line_number('main.cpp', '// set breakpoint here')
 
-    @skipIfReproducer # SBData::SetData is not instrumented.
     def test_byte_order_and_address_byte_size(self):
         """Test the SBData::SetData() to ensure the byte order and address
         byte size are obeyed"""
@@ -40,7 +39,6 @@ def test_byte_order_and_address_byte_size(self):
         addr = data.GetAddress(error, 0)
         self.assertEqual(addr, 0x8877665544332211);
 
-    @skipIfReproducer # SBData::SetData is not instrumented.
     def test_with_run_command(self):
         """Test the SBData APIs."""
         self.build()

diff  --git a/lldb/test/API/python_api/symbol-context/TestSymbolContext.py b/lldb/test/API/python_api/symbol-context/TestSymbolContext.py
index c02e1bf8768e6..69abb8fa4863f 100644
--- a/lldb/test/API/python_api/symbol-context/TestSymbolContext.py
+++ b/lldb/test/API/python_api/symbol-context/TestSymbolContext.py
@@ -22,7 +22,6 @@ def setUp(self):
             'main.c', '// Find the line number of function "c" here.')
 
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")
-    @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def test(self):
         """Exercise SBSymbolContext API extensively."""
         self.build()

diff  --git a/lldb/test/API/python_api/target/TestTargetAPI.py b/lldb/test/API/python_api/target/TestTargetAPI.py
index c53f6002c3c2c..29e368224e813 100644
--- a/lldb/test/API/python_api/target/TestTargetAPI.py
+++ b/lldb/test/API/python_api/target/TestTargetAPI.py
@@ -112,7 +112,6 @@ def test_resolve_file_address(self):
         self.assertIsNotNone(data_section2)
         self.assertEqual(data_section.name, data_section2.name)
 
-    @skipIfReproducer # SBTarget::ReadMemory is not instrumented.
     def test_read_memory(self):
         d = {'EXE': 'b.out'}
         self.build(dictionary=d)
@@ -143,7 +142,6 @@ def test_read_memory(self):
 
     @skipIfWindows  # stdio manipulation unsupported on Windows
     @skipIfRemote   # stdio manipulation unsupported on remote iOS devices<rdar://problem/54581135>
-    @skipIfReproducer  # stdout not captured by reproducers
     @skipIf(oslist=["linux"], archs=["arm", "aarch64"])
     @no_debug_info_test
     def test_launch_simple(self):
@@ -248,18 +246,16 @@ def find_global_variables(self, exe_name):
         self.expect(my_global_var.GetValue(), exe=False,
                     startstr="'X'")
 
-
-        if not configuration.is_reproducer():
-            # While we are at it, let's also exercise the similar
-            # SBModule.FindGlobalVariables() API.
-            for m in target.module_iter():
-                if os.path.normpath(m.GetFileSpec().GetDirectory()) == self.getBuildDir() and m.GetFileSpec().GetFilename() == exe_name:
-                    value_list = m.FindGlobalVariables(
-                        target, 'my_global_var_of_char_type', 3)
-                    self.assertEqual(value_list.GetSize(), 1)
-                    self.assertEqual(
-                        value_list.GetValueAtIndex(0).GetValue(), "'X'")
-                    break
+        # While we are at it, let's also exercise the similar
+        # SBModule.FindGlobalVariables() API.
+        for m in target.module_iter():
+            if os.path.normpath(m.GetFileSpec().GetDirectory()) == self.getBuildDir() and m.GetFileSpec().GetFilename() == exe_name:
+                value_list = m.FindGlobalVariables(
+                    target, 'my_global_var_of_char_type', 3)
+                self.assertEqual(value_list.GetSize(), 1)
+                self.assertEqual(
+                    value_list.GetValueAtIndex(0).GetValue(), "'X'")
+                break
 
     def find_compile_units(self, exe):
         """Exercise SBTarget.FindCompileUnits() API."""
@@ -324,7 +320,6 @@ def get_description(self):
 
     @skipIfRemote
     @no_debug_info_test
-    @skipIfReproducer # Inferior doesn't run during replay.
     def test_launch_new_process_and_redirect_stdout(self):
         """Exercise SBTaget.Launch() API with redirected stdout."""
         self.build()

diff  --git a/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py b/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
index ec162f65e2096..3ffa5bfb67fab 100644
--- a/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
+++ b/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
@@ -143,14 +143,11 @@ def test_change_value(self):
             thread.IsValid(),
             "There should be a thread stopped due to breakpoint condition")
 
-        # Grab the stdout and make sure we changed the real values as well.
-        # This doesn't work for reproducers as the inferior doesn't run.
-        if not configuration.is_reproducer():
-            expected_value = "Val - 12345 Mine - 55, 98765, 55555555. Ptr - 66, 98765, 66666666"
-            stdout = process.GetSTDOUT(1000)
-            self.assertTrue(
-                expected_value in stdout,
-                "STDOUT showed changed values.")
+        expected_value = "Val - 12345 Mine - 55, 98765, 55555555. Ptr - 66, 98765, 66666666"
+        stdout = process.GetSTDOUT(1000)
+        self.assertTrue(
+            expected_value in stdout,
+            "STDOUT showed changed values.")
 
         # Finally, change the stack pointer to 0, and we should not make it to
         # our end breakpoint.

diff  --git a/lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py b/lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py
index f135ed6700f14..b1a41a4a709cd 100644
--- a/lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py
+++ b/lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py
@@ -102,9 +102,4 @@ def test_watch_val(self):
             PROCESS_EXITED)
 
         self.dbg.DeleteTarget(target)
-
-        # The next check relies on the watchpoint being destructed, which does
-        # not happen during replay because objects are intentionally kept alive
-        # forever.
-        if not configuration.is_reproducer():
-            self.assertFalse(watchpoint.IsValid())
+        self.assertFalse(watchpoint.IsValid())

diff  --git a/lldb/test/API/source-manager/TestSourceManager.py b/lldb/test/API/source-manager/TestSourceManager.py
index 3ce056f2d0294..fc91d3c445b9a 100644
--- a/lldb/test/API/source-manager/TestSourceManager.py
+++ b/lldb/test/API/source-manager/TestSourceManager.py
@@ -172,7 +172,6 @@ def test_move_and_then_display_source(self):
                     substrs=['Hello world'])
 
     @skipIf(oslist=["windows"], bugnumber="llvm.org/pr44431")
-    @skipIfReproducer # VFS is a snapshot.
     def test_modify_source_file_while_debugging(self):
         """Modify a source file while debugging the executable."""
         self.build()

diff  --git a/lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py b/lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
index 01942344e0e10..31fe282c7d910 100644
--- a/lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
+++ b/lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
@@ -8,7 +8,6 @@
 import platform
 import re
 
- at skipIfReproducer
 class TestAppleSimulatorOSType(gdbremote_testcase.GdbRemoteTestCaseBase):
 
     mydir = TestBase.compute_mydir(__file__)

diff  --git a/lldb/test/API/types/AbstractBase.py b/lldb/test/API/types/AbstractBase.py
index 537c1826d2a43..fe304e19ca66b 100644
--- a/lldb/test/API/types/AbstractBase.py
+++ b/lldb/test/API/types/AbstractBase.py
@@ -34,14 +34,11 @@ def setUp(self):
         # used for all the test cases.
         self.exe_name = self.testMethodName
         golden = "{}-golden-output.txt".format(self.testMethodName)
-        if configuration.is_reproducer():
-            self.golden_filename = self.getReproducerArtifact(golden)
-        else:
-            self.golden_filename = self.getBuildArtifact(golden)
+        self.golden_filename = self.getBuildArtifact(golden)
 
     def tearDown(self):
         """Cleanup the test byproducts."""
-        if os.path.exists(self.golden_filename) and not configuration.is_reproducer():
+        if os.path.exists(self.golden_filename):
             os.remove(self.golden_filename)
         TestBase.tearDown(self)
 
@@ -104,9 +101,6 @@ def process_launch_o(self):
             # copy remote_path to local host
             self.runCmd('platform get-file {remote} "{local}"'.format(
                 remote=remote_path, local=self.golden_filename))
-        elif configuration.is_reproducer_replay():
-            # Don't overwrite the golden file generated at capture time.
-            self.runCmd('process launch')
         else:
             self.runCmd(
                 'process launch -o "{local}"'.format(local=self.golden_filename))


        


More information about the lldb-commits mailing list