https://github.com/kastiglione updated https://github.com/llvm/llvm-project/pull/181720
>From 905b7d361622583998ade3d7e978b5d89fe29bdb Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Mon, 16 Feb 2026 10:33:05 -0800 Subject: [PATCH 01/13] [lldb] Allow tests to share a single build This allows a test to have a single shared build for the test case, instead of the default behavior of a separate build for each test function. Concretely, this results in a single build directory, named by the test. The default behavior is to create many build directories, named `TestSomething.test_one`, `TestSomething.test_two`, etc. This is opt-in, tests get a single shared build by setting `SHARED_BUILD_TESTCASE` in the test case class. The goal here is to make the test suite eventually more efficient, by not repeatedly building the same test source. --- lldb/packages/Python/lldbsuite/test/lldbtest.py | 7 ++++++- lldb/test/API/commands/dwim-print/TestDWIMPrint.py | 2 ++ .../test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 6034eca3b93f2..c8a69142394ee 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -569,6 +569,8 @@ class Base(unittest.TestCase): # Can be overridden by the LLDB_TIME_WAIT_NEXT_LAUNCH environment variable. timeWaitNextLaunch = 1.0 + SHARED_BUILD_TESTCASE = False + @staticmethod def compute_mydir(test_file): """Subclasses should call this function to correctly calculate the @@ -754,7 +756,10 @@ def getSourceDir(self): return os.path.join(configuration.test_src_root, self.mydir) def getBuildDirBasename(self): - return self.__class__.__module__ + "." + self.testMethodName + if self.__class__.SHARED_BUILD_TESTCASE: + return self.__class__.__module__ + else: + return self.__class__.__module__ + "." + self.testMethodName def getBuildDir(self): """Return the full path to the current test.""" diff --git a/lldb/test/API/commands/dwim-print/TestDWIMPrint.py b/lldb/test/API/commands/dwim-print/TestDWIMPrint.py index 82ff59f74f41f..694671faedfc2 100644 --- a/lldb/test/API/commands/dwim-print/TestDWIMPrint.py +++ b/lldb/test/API/commands/dwim-print/TestDWIMPrint.py @@ -10,6 +10,8 @@ class TestCase(TestBase): + SHARED_BUILD_TESTCASE = True + def _run_cmd(self, cmd: str) -> str: """Run the given lldb command and return its output.""" result = lldb.SBCommandReturnObject() diff --git a/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py b/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py index 616d049459ab9..0a863c85bbc69 100644 --- a/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py +++ b/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py @@ -9,6 +9,8 @@ class TestCase(TestBase): + SHARED_BUILD_TESTCASE = True + @skipUnlessDarwin def test(self): self.build() >From c70fe1576c372e5d115516f44de36ddc1223b94c Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Mon, 16 Feb 2026 10:44:21 -0800 Subject: [PATCH 02/13] Add comment doc --- lldb/packages/Python/lldbsuite/test/lldbtest.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index c8a69142394ee..404074bea5964 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -569,6 +569,8 @@ class Base(unittest.TestCase): # Can be overridden by the LLDB_TIME_WAIT_NEXT_LAUNCH environment variable. timeWaitNextLaunch = 1.0 + # Subclasses can set this to True to avoid repeated building of the test + # source (by default, a separate build happens for each test function). SHARED_BUILD_TESTCASE = False @staticmethod >From 7f8abce44127fe3fa9f29cc47fa2d1fa9abd676c Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Mon, 16 Feb 2026 11:16:09 -0800 Subject: [PATCH 03/13] Don't always delete build dir in setUp --- lldb/packages/Python/lldbsuite/test/lldbtest.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 404074bea5964..004a25d3c5678 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -758,7 +758,7 @@ def getSourceDir(self): return os.path.join(configuration.test_src_root, self.mydir) def getBuildDirBasename(self): - if self.__class__.SHARED_BUILD_TESTCASE: + if self.SHARED_BUILD_TESTCASE: return self.__class__.__module__ else: return self.__class__.__module__ + "." + self.testMethodName @@ -770,10 +770,10 @@ def getBuildDir(self): ) def makeBuildDir(self): - """Create the test-specific working directory, deleting any previous - contents.""" + """Create the test-specific working directory, optionally deleting any + previous contents.""" bdir = self.getBuildDir() - if os.path.isdir(bdir): + if os.path.isdir(bdir) and not self.SHARED_BUILD_TESTCASE: shutil.rmtree(bdir) lldbutil.mkdir_p(bdir) >From 64494fd1a7147b849a6abd813b6a1c8566f80f41 Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 13:38:39 -0800 Subject: [PATCH 04/13] Default SHARED_BUILD_TESTCASE to True --- lldb/packages/Python/lldbsuite/test/lldbinline.py | 1 + lldb/packages/Python/lldbsuite/test/lldbtest.py | 2 +- lldb/test/API/commands/dwim-print/TestDWIMPrint.py | 2 -- lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py | 2 -- lldb/test/API/commands/frame/var/TestFrameVar.py | 1 + lldb/test/API/commands/process/launch/TestProcessLaunch.py | 2 ++ .../commands/settings/use_source_cache/TestUseSourceCache.py | 1 + lldb/test/API/commands/statistics/basic/TestStats.py | 1 + .../TestAutoInstallMainExecutable.py | 3 +++ lldb/test/API/commands/trace/TestTraceStartStop.py | 3 +++ .../breakpoint/breakpoint_command/TestBreakpointCommand.py | 1 + .../API/functionalities/breakpoint/objc/TestObjCBreakpoints.py | 2 ++ lldb/test/API/functionalities/gdb_remote_client/TestPty.py | 3 +++ .../functionalities/inferior-changed/TestInferiorChanged.py | 2 ++ .../API/functionalities/limit-debug-info/TestLimitDebugInfo.py | 2 ++ .../API/functionalities/module_cache/bsd/TestModuleCacheBSD.py | 2 ++ .../module_cache/debug_index/TestDebugIndexCache.py | 2 ++ .../API/functionalities/rerun_and_expr/TestRerunAndExpr.py | 2 ++ .../rerun_and_expr_dylib/TestRerunAndExprDylib.py | 2 ++ .../API/lang/c/calling-conventions/TestCCallingConventions.py | 2 ++ lldb/test/API/lang/cpp/abi_tag_lookup/TestAbiTagLookup.py | 2 ++ .../test/API/lang/cpp/abi_tag_structors/TestAbiTagStructors.py | 2 ++ .../TestConstStaticIntegralMember.py | 2 ++ .../cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py | 1 + .../gmodules/template-with-same-arg/TestTemplateWithSameArg.py | 2 ++ lldb/test/API/lang/cpp/namespace/TestNamespaceLookup.py | 2 ++ lldb/test/API/lang/cpp/template-alias/TestTemplateAlias.py | 2 ++ .../API/lang/cpp/template-function/TestTemplateFunctions.py | 2 ++ .../lang/objc/objc-struct-argument/TestObjCStructArgument.py | 2 ++ .../macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py | 2 ++ lldb/test/API/macosx/simulator/TestSimulatorPlatform.py | 2 ++ lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py | 3 +++ lldb/test/API/python_api/debugger/TestDebuggerAPI.py | 1 + .../target-arch-from-module/TestTargetArchFromModule.py | 2 ++ lldb/test/API/source-manager/TestSourceManager.py | 1 + lldb/test/API/test_utils/base/TestBaseTest.py | 2 ++ .../API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py | 2 ++ lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py | 2 ++ .../API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py | 2 ++ lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py | 2 ++ .../tools/lldb-server/commandline/TestGdbRemoteConnection.py | 3 +++ lldb/test/API/types/AbstractBase.py | 2 ++ 42 files changed, 76 insertions(+), 5 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/lldbinline.py b/lldb/packages/Python/lldbsuite/test/lldbinline.py index ae38ab9d8c9d7..d1225db4d61a9 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbinline.py +++ b/lldb/packages/Python/lldbsuite/test/lldbinline.py @@ -210,4 +210,5 @@ def MakeInlineTest(__file, __globals, decorators=None, name=None, build_dict=Non # correctly in test results. test_class.test_filename = __file test_class.mydir = TestBase.compute_mydir(__file) + test_class.SHARED_BUILD_TESTCASE = False return test_class diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 004a25d3c5678..c7df01dba2c80 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -571,7 +571,7 @@ class Base(unittest.TestCase): # Subclasses can set this to True to avoid repeated building of the test # source (by default, a separate build happens for each test function). - SHARED_BUILD_TESTCASE = False + SHARED_BUILD_TESTCASE = True @staticmethod def compute_mydir(test_file): diff --git a/lldb/test/API/commands/dwim-print/TestDWIMPrint.py b/lldb/test/API/commands/dwim-print/TestDWIMPrint.py index 694671faedfc2..82ff59f74f41f 100644 --- a/lldb/test/API/commands/dwim-print/TestDWIMPrint.py +++ b/lldb/test/API/commands/dwim-print/TestDWIMPrint.py @@ -10,8 +10,6 @@ class TestCase(TestBase): - SHARED_BUILD_TESTCASE = True - def _run_cmd(self, cmd: str) -> str: """Run the given lldb command and return its output.""" result = lldb.SBCommandReturnObject() diff --git a/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py b/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py index 0a863c85bbc69..616d049459ab9 100644 --- a/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py +++ b/lldb/test/API/commands/dwim-print/objc/TestDWIMPrintObjC.py @@ -9,8 +9,6 @@ class TestCase(TestBase): - SHARED_BUILD_TESTCASE = True - @skipUnlessDarwin def test(self): self.build() diff --git a/lldb/test/API/commands/frame/var/TestFrameVar.py b/lldb/test/API/commands/frame/var/TestFrameVar.py index d8260a5657618..b70120cb2d8e1 100644 --- a/lldb/test/API/commands/frame/var/TestFrameVar.py +++ b/lldb/test/API/commands/frame/var/TestFrameVar.py @@ -16,6 +16,7 @@ class TestFrameVar(TestBase): # set this to true. That way it won't be run once for # each debug info format. NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def test_frame_var(self): self.build() diff --git a/lldb/test/API/commands/process/launch/TestProcessLaunch.py b/lldb/test/API/commands/process/launch/TestProcessLaunch.py index 92d0c468741e5..90d95d6bd5c75 100644 --- a/lldb/test/API/commands/process/launch/TestProcessLaunch.py +++ b/lldb/test/API/commands/process/launch/TestProcessLaunch.py @@ -9,10 +9,12 @@ from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil from pathlib import Path +import re class ProcessLaunchTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def setUp(self): # Call super's setUp(). diff --git a/lldb/test/API/commands/settings/use_source_cache/TestUseSourceCache.py b/lldb/test/API/commands/settings/use_source_cache/TestUseSourceCache.py index 8425ab09ab9d7..01f5e652d37bd 100644 --- a/lldb/test/API/commands/settings/use_source_cache/TestUseSourceCache.py +++ b/lldb/test/API/commands/settings/use_source_cache/TestUseSourceCache.py @@ -12,6 +12,7 @@ class SettingsUseSourceCacheTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def test_set_use_source_cache_false(self): """Test that after 'set use-source-cache false', files are not locked.""" diff --git a/lldb/test/API/commands/statistics/basic/TestStats.py b/lldb/test/API/commands/statistics/basic/TestStats.py index c8527abf3c84e..a32b8feecc5cf 100644 --- a/lldb/test/API/commands/statistics/basic/TestStats.py +++ b/lldb/test/API/commands/statistics/basic/TestStats.py @@ -11,6 +11,7 @@ class TestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def test_enable_disable(self): """ diff --git a/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py b/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py index 165fae72319ae..3120b141c8bcd 100644 --- a/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py +++ b/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py @@ -9,10 +9,13 @@ from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil +import lldb +import os class TestAutoInstallMainExecutable(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False @skipIfRemote @skipIfWindows # This test is flaky on Windows diff --git a/lldb/test/API/commands/trace/TestTraceStartStop.py b/lldb/test/API/commands/trace/TestTraceStartStop.py index 9450f8b0961a8..d88d80bac93a0 100644 --- a/lldb/test/API/commands/trace/TestTraceStartStop.py +++ b/lldb/test/API/commands/trace/TestTraceStartStop.py @@ -3,10 +3,13 @@ from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil from lldbsuite.test.decorators import * +import os @skipIfNoIntelPT class TestTraceStartStop(TraceIntelPTTestCaseBase): + SHARED_BUILD_TESTCASE = False + def expectGenericHelpMessageForStartCommand(self): self.expect( "help thread trace start", diff --git a/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py b/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py index 605561c757372..e45362295690d 100644 --- a/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py +++ b/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py @@ -14,6 +14,7 @@ class BreakpointCommandTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24528") def test_breakpoint_command_sequence(self): diff --git a/lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py b/lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py index 29cf31563a9a9..7cecd1d290683 100644 --- a/lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py +++ b/lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py @@ -13,6 +13,8 @@ class TestObjCBreakpoints(TestBase): + SHARED_BUILD_TESTCASE = False + @add_test_categories(["objc"]) def test_break(self): """Test setting Objective-C specific breakpoints (DWARF in .o files).""" diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestPty.py b/lldb/test/API/functionalities/gdb_remote_client/TestPty.py index 94eeb6e3ba11a..f8d56b170fc02 100644 --- a/lldb/test/API/functionalities/gdb_remote_client/TestPty.py +++ b/lldb/test/API/functionalities/gdb_remote_client/TestPty.py @@ -3,10 +3,13 @@ from lldbsuite.test.decorators import * from lldbsuite.test.gdbclientutils import * from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase +import os @skipIf(hostoslist=["windows"]) class TestPty(GDBRemoteTestBase): + SHARED_BUILD_TESTCASE = False + server_socket_class = PtyServerSocket def get_term_attrs(self): diff --git a/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py b/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py index ea0283e119f1e..c8114ab78d9e0 100644 --- a/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py +++ b/lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py @@ -10,6 +10,8 @@ class ChangedInferiorTestCase(TestBase): + SHARED_BUILD_TESTCASE = False + @skipIf(hostoslist=["windows"]) @no_debug_info_test def test_inferior_crashing(self): diff --git a/lldb/test/API/functionalities/limit-debug-info/TestLimitDebugInfo.py b/lldb/test/API/functionalities/limit-debug-info/TestLimitDebugInfo.py index 18371669462e2..668d31d8a5acd 100644 --- a/lldb/test/API/functionalities/limit-debug-info/TestLimitDebugInfo.py +++ b/lldb/test/API/functionalities/limit-debug-info/TestLimitDebugInfo.py @@ -10,6 +10,8 @@ class LimitDebugInfoTestCase(TestBase): + SHARED_BUILD_TESTCASE = False + def _check_type(self, target, name): exe = target.FindModule(lldb.SBFileSpec("a.out")) type_ = exe.FindFirstType(name) diff --git a/lldb/test/API/functionalities/module_cache/bsd/TestModuleCacheBSD.py b/lldb/test/API/functionalities/module_cache/bsd/TestModuleCacheBSD.py index 20312f829fdc1..180d487fd4845 100644 --- a/lldb/test/API/functionalities/module_cache/bsd/TestModuleCacheBSD.py +++ b/lldb/test/API/functionalities/module_cache/bsd/TestModuleCacheBSD.py @@ -10,6 +10,8 @@ class ModuleCacheTestcaseBSD(TestBase): + SHARED_BUILD_TESTCASE = False + def setUp(self): # Call super's setUp(). TestBase.setUp(self) diff --git a/lldb/test/API/functionalities/module_cache/debug_index/TestDebugIndexCache.py b/lldb/test/API/functionalities/module_cache/debug_index/TestDebugIndexCache.py index 501ceb705c579..7d7d31b366f4b 100644 --- a/lldb/test/API/functionalities/module_cache/debug_index/TestDebugIndexCache.py +++ b/lldb/test/API/functionalities/module_cache/debug_index/TestDebugIndexCache.py @@ -9,6 +9,8 @@ class DebugIndexCacheTestcase(TestBase): + SHARED_BUILD_TESTCASE = False + def setUp(self): # Call super's setUp(). TestBase.setUp(self) diff --git a/lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py b/lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py index 1d62af4299c3b..e0d6a811fc22c 100644 --- a/lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py +++ b/lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py @@ -11,6 +11,8 @@ class TestRerunExpr(TestBase): + SHARED_BUILD_TESTCASE = False + # FIXME: on Windows rebuilding the binary isn't enough to unload it # on progrem restart. One will have to try hard to evict # the module from the ModuleList (possibly including a call to diff --git a/lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py b/lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py index 19edaac964e62..cc9ffd280a021 100644 --- a/lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py +++ b/lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py @@ -26,6 +26,8 @@ def isUbuntu18_04(): class TestRerunExprDylib(TestBase): + SHARED_BUILD_TESTCASE = False + @skipTestIfFn(isUbuntu18_04, bugnumber="rdar://103831050") @skipIfWindows @skipIfRemote diff --git a/lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py b/lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py index 9540dc066f308..dff3bc97f9998 100644 --- a/lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py +++ b/lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py @@ -3,10 +3,12 @@ from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil from lldbsuite.test_event.build_exception import BuildError +import re class TestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def build_and_run(self, test_file): """ diff --git a/lldb/test/API/lang/cpp/abi_tag_lookup/TestAbiTagLookup.py b/lldb/test/API/lang/cpp/abi_tag_lookup/TestAbiTagLookup.py index 4f6e41ed29de1..19f4a4e14ed22 100644 --- a/lldb/test/API/lang/cpp/abi_tag_lookup/TestAbiTagLookup.py +++ b/lldb/test/API/lang/cpp/abi_tag_lookup/TestAbiTagLookup.py @@ -10,6 +10,8 @@ class AbiTagLookupTestCase(TestBase): + SHARED_BUILD_TESTCASE = False + @skipIfWindows @expectedFailureAll(debug_info=["dwarf", "gmodules", "dwo"]) def test_abi_tag_lookup(self): diff --git a/lldb/test/API/lang/cpp/abi_tag_structors/TestAbiTagStructors.py b/lldb/test/API/lang/cpp/abi_tag_structors/TestAbiTagStructors.py index 2d3e4f7cdd472..58b726417ee0a 100644 --- a/lldb/test/API/lang/cpp/abi_tag_structors/TestAbiTagStructors.py +++ b/lldb/test/API/lang/cpp/abi_tag_structors/TestAbiTagStructors.py @@ -10,6 +10,8 @@ class AbiTagStructorsTestCase(TestBase): + SHARED_BUILD_TESTCASE = False + @skipIf( compiler="clang", compiler_version=["<", "22"], diff --git a/lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py b/lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py index 9de7eb2e4a6e3..3f42dc195d118 100644 --- a/lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py +++ b/lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py @@ -9,6 +9,8 @@ class TestCase(TestBase): + SHARED_BUILD_TESTCASE = False + def test(self): self.build() lldbutil.run_to_source_breakpoint( diff --git a/lldb/test/API/lang/cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py b/lldb/test/API/lang/cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py index b3bed43c75873..b0781c8d442e5 100644 --- a/lldb/test/API/lang/cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py +++ b/lldb/test/API/lang/cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py @@ -5,6 +5,7 @@ class ExprDefinitionInDylibTestCase(TestBase): + SHARED_BUILD_TESTCASE = False @skipIf( compiler="clang", diff --git a/lldb/test/API/lang/cpp/gmodules/template-with-same-arg/TestTemplateWithSameArg.py b/lldb/test/API/lang/cpp/gmodules/template-with-same-arg/TestTemplateWithSameArg.py index d40be55872eae..00fa739ee0591 100644 --- a/lldb/test/API/lang/cpp/gmodules/template-with-same-arg/TestTemplateWithSameArg.py +++ b/lldb/test/API/lang/cpp/gmodules/template-with-same-arg/TestTemplateWithSameArg.py @@ -27,6 +27,8 @@ class TestTemplateWithSameArg(TestBase): + SHARED_BUILD_TESTCASE = False + def setUp(self): TestBase.setUp(self) self.build() diff --git a/lldb/test/API/lang/cpp/namespace/TestNamespaceLookup.py b/lldb/test/API/lang/cpp/namespace/TestNamespaceLookup.py index 41141164769ec..73d43207cd12c 100644 --- a/lldb/test/API/lang/cpp/namespace/TestNamespaceLookup.py +++ b/lldb/test/API/lang/cpp/namespace/TestNamespaceLookup.py @@ -11,6 +11,8 @@ from lldbsuite.test import lldbplatformutil class NamespaceLookupTestCase(TestBase): + SHARED_BUILD_TESTCASE = False + def setUp(self): # Call super's setUp(). TestBase.setUp(self) diff --git a/lldb/test/API/lang/cpp/template-alias/TestTemplateAlias.py b/lldb/test/API/lang/cpp/template-alias/TestTemplateAlias.py index 8b6d6dcbc38ba..83a776fc1735d 100644 --- a/lldb/test/API/lang/cpp/template-alias/TestTemplateAlias.py +++ b/lldb/test/API/lang/cpp/template-alias/TestTemplateAlias.py @@ -5,6 +5,8 @@ class TestTemplateAlias(TestBase): + SHARED_BUILD_TESTCASE = False + def do_test(self, extra_flags): self.build(dictionary=extra_flags) self.main_source_file = lldb.SBFileSpec("main.cpp") diff --git a/lldb/test/API/lang/cpp/template-function/TestTemplateFunctions.py b/lldb/test/API/lang/cpp/template-function/TestTemplateFunctions.py index 3be93dedfd11d..aac9b0a2450cc 100644 --- a/lldb/test/API/lang/cpp/template-function/TestTemplateFunctions.py +++ b/lldb/test/API/lang/cpp/template-function/TestTemplateFunctions.py @@ -8,6 +8,8 @@ class TemplateFunctionsTestCase(TestBase): + SHARED_BUILD_TESTCASE = False + def do_test_template_function(self, add_cast): self.build() lldbutil.run_to_source_breakpoint( diff --git a/lldb/test/API/lang/objc/objc-struct-argument/TestObjCStructArgument.py b/lldb/test/API/lang/objc/objc-struct-argument/TestObjCStructArgument.py index 480d99523e8a2..921db09db1c57 100644 --- a/lldb/test/API/lang/objc/objc-struct-argument/TestObjCStructArgument.py +++ b/lldb/test/API/lang/objc/objc-struct-argument/TestObjCStructArgument.py @@ -8,6 +8,8 @@ class TestObjCStructArgument(TestBase): + SHARED_BUILD_TESTCASE = False + def setUp(self): # Call super's setUp(). TestBase.setUp(self) diff --git a/lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py b/lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py index 9309de4824ec4..c941d7a61da05 100644 --- a/lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py +++ b/lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py @@ -12,6 +12,8 @@ class TestFirmwareCorefiles(TestBase): + SHARED_BUILD_TESTCASE = False + @skipIf( debug_info=no_match(["dsym"]), bugnumber="This test is looking explicitly for a dSYM", diff --git a/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py b/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py index b17ee83ea04fe..2773a2cf072e4 100644 --- a/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py +++ b/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py @@ -3,10 +3,12 @@ from lldbsuite.test.decorators import * import lldbsuite.test.lldbutil as lldbutil import json +import subprocess class TestSimulatorPlatformLaunching(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def check_load_commands(self, expected_load_command): """sanity check the built binary for the expected number of load commands""" diff --git a/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py b/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py index bc19c69df7620..34284cb23b269 100644 --- a/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py +++ b/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py @@ -9,9 +9,12 @@ from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil +import shutil class TestSkinnyCorefile(TestBase): + SHARED_BUILD_TESTCASE = False + @skipIf( debug_info=no_match(["dsym"]), bugnumber="This test is looking explicitly for a dSYM", diff --git a/lldb/test/API/python_api/debugger/TestDebuggerAPI.py b/lldb/test/API/python_api/debugger/TestDebuggerAPI.py index 600cde3c6b807..93ee52dc88ef8 100644 --- a/lldb/test/API/python_api/debugger/TestDebuggerAPI.py +++ b/lldb/test/API/python_api/debugger/TestDebuggerAPI.py @@ -11,6 +11,7 @@ class DebuggerAPITestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def test_debugger_api_boundary_condition(self): """Exercise SBDebugger APIs with boundary conditions.""" diff --git a/lldb/test/API/python_api/target-arch-from-module/TestTargetArchFromModule.py b/lldb/test/API/python_api/target-arch-from-module/TestTargetArchFromModule.py index 0141828ae1eab..ba9ab286f82e6 100644 --- a/lldb/test/API/python_api/target-arch-from-module/TestTargetArchFromModule.py +++ b/lldb/test/API/python_api/target-arch-from-module/TestTargetArchFromModule.py @@ -12,6 +12,8 @@ class TargetArchFromModule(TestBase): + SHARED_BUILD_TESTCASE = False + @skipIf( debug_info=no_match(["dsym"]), bugnumber="This test is looking explicitly for a dSYM", diff --git a/lldb/test/API/source-manager/TestSourceManager.py b/lldb/test/API/source-manager/TestSourceManager.py index 3500dded815b9..9055dcba93fd1 100644 --- a/lldb/test/API/source-manager/TestSourceManager.py +++ b/lldb/test/API/source-manager/TestSourceManager.py @@ -30,6 +30,7 @@ def ansi_color_surround_regex(inner_regex_text): class SourceManagerTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def setUp(self): # Call super's setUp(). diff --git a/lldb/test/API/test_utils/base/TestBaseTest.py b/lldb/test/API/test_utils/base/TestBaseTest.py index 41ba481b9b74f..afff48d0c6d13 100644 --- a/lldb/test/API/test_utils/base/TestBaseTest.py +++ b/lldb/test/API/test_utils/base/TestBaseTest.py @@ -9,6 +9,8 @@ class TestBuildMethod(Base): + SHARED_BUILD_TESTCASE = False + def setUp(self): super().setUp() self._traces = [] diff --git a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py index 3309800c1dd10..7f9d4325ce4f8 100644 --- a/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py +++ b/lldb/test/API/tools/lldb-dap/breakpoint/TestDAP_setBreakpoints.py @@ -12,6 +12,8 @@ class TestDAP_setBreakpoints(lldbdap_testcase.DAPTestCaseBase): + SHARED_BUILD_TESTCASE = False + def setUp(self): lldbdap_testcase.DAPTestCaseBase.setUp(self) diff --git a/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py b/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py index 19f88d88c2ff4..3a4bc62fc6872 100644 --- a/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py +++ b/lldb/test/API/tools/lldb-dap/disconnect/TestDAP_disconnect.py @@ -12,6 +12,8 @@ class TestDAP_disconnect(lldbdap_testcase.DAPTestCaseBase): + SHARED_BUILD_TESTCASE = False + source = "main.cpp" def disconnect_and_assert_no_output_printed(self): diff --git a/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py b/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py index dfb4906ae6a49..0fdc719b6cb76 100644 --- a/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py +++ b/lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py @@ -12,6 +12,8 @@ @skipIfBuildType(["debug"]) class TestDAP_runInTerminal(lldbdap_testcase.DAPTestCaseBase): + SHARED_BUILD_TESTCASE = False + def read_pid_message(self, fifo_file): with open(fifo_file, "r") as file: self.assertIn("pid", file.readline()) diff --git a/lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py b/lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py index 1dbb0143e7a55..8b87d5e13ebd4 100644 --- a/lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py +++ b/lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py @@ -17,6 +17,8 @@ def make_buffer_verify_dict(start_idx, count, offset=0): class TestDAP_variables(lldbdap_testcase.DAPTestCaseBase): + SHARED_BUILD_TESTCASE = False + def verify_values(self, verify_dict, actual, varref_dict=None, expression=None): if "equals" in verify_dict: verify = verify_dict["equals"] diff --git a/lldb/test/API/tools/lldb-server/commandline/TestGdbRemoteConnection.py b/lldb/test/API/tools/lldb-server/commandline/TestGdbRemoteConnection.py index ed600d396fad4..7e37de53494b3 100644 --- a/lldb/test/API/tools/lldb-server/commandline/TestGdbRemoteConnection.py +++ b/lldb/test/API/tools/lldb-server/commandline/TestGdbRemoteConnection.py @@ -6,9 +6,12 @@ from lldbgdbserverutils import Server import lldbsuite.test.lldbplatformutil from lldbgdbserverutils import Pipe +import lldb class TestGdbRemoteConnection(gdbremote_testcase.GdbRemoteTestCaseBase): + SHARED_BUILD_TESTCASE = False + @skipIfRemote # reverse connect is not a supported use case for now def test_reverse_connect(self): # Reverse connect is the default connection method. diff --git a/lldb/test/API/types/AbstractBase.py b/lldb/test/API/types/AbstractBase.py index fb1e25254b281..0420ffd8f3bbb 100644 --- a/lldb/test/API/types/AbstractBase.py +++ b/lldb/test/API/types/AbstractBase.py @@ -22,6 +22,8 @@ class GenericTester(TestBase): # printf() stmts (see basic_type.cpp). pattern = re.compile(r" (\*?a[^=]*) = '([^=]*)'$") + SHARED_BUILD_TESTCASE = False + # Assert message. DATA_TYPE_GROKKED = "Data type from expr parser output is parsed correctly" >From e115238c9a0ce9f505effbad6264ae5fcb07aaf8 Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 13:41:06 -0800 Subject: [PATCH 05/13] Remove added import --- lldb/test/API/commands/process/launch/TestProcessLaunch.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lldb/test/API/commands/process/launch/TestProcessLaunch.py b/lldb/test/API/commands/process/launch/TestProcessLaunch.py index 90d95d6bd5c75..28de5bc0623d0 100644 --- a/lldb/test/API/commands/process/launch/TestProcessLaunch.py +++ b/lldb/test/API/commands/process/launch/TestProcessLaunch.py @@ -9,7 +9,6 @@ from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil from pathlib import Path -import re class ProcessLaunchTestCase(TestBase): >From 644cec7d8d7c0e8bcdc56e867a3cbc63ac39a3f7 Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 13:49:11 -0800 Subject: [PATCH 06/13] Remove more inadvertent imports --- .../TestAutoInstallMainExecutable.py | 2 -- lldb/test/API/commands/trace/TestTraceStartStop.py | 1 - lldb/test/API/functionalities/gdb_remote_client/TestPty.py | 1 - .../API/lang/c/calling-conventions/TestCCallingConventions.py | 1 - .../tools/lldb-server/commandline/TestGdbRemoteConnection.py | 1 - 5 files changed, 6 deletions(-) diff --git a/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py b/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py index 3120b141c8bcd..47bbd2439434c 100644 --- a/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py +++ b/lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py @@ -9,8 +9,6 @@ from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil -import lldb -import os class TestAutoInstallMainExecutable(TestBase): diff --git a/lldb/test/API/commands/trace/TestTraceStartStop.py b/lldb/test/API/commands/trace/TestTraceStartStop.py index d88d80bac93a0..8f882eb5d974b 100644 --- a/lldb/test/API/commands/trace/TestTraceStartStop.py +++ b/lldb/test/API/commands/trace/TestTraceStartStop.py @@ -3,7 +3,6 @@ from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil from lldbsuite.test.decorators import * -import os @skipIfNoIntelPT diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestPty.py b/lldb/test/API/functionalities/gdb_remote_client/TestPty.py index f8d56b170fc02..47f687806dbab 100644 --- a/lldb/test/API/functionalities/gdb_remote_client/TestPty.py +++ b/lldb/test/API/functionalities/gdb_remote_client/TestPty.py @@ -3,7 +3,6 @@ from lldbsuite.test.decorators import * from lldbsuite.test.gdbclientutils import * from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase -import os @skipIf(hostoslist=["windows"]) diff --git a/lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py b/lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py index dff3bc97f9998..a8cb87063f50a 100644 --- a/lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py +++ b/lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py @@ -3,7 +3,6 @@ from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil from lldbsuite.test_event.build_exception import BuildError -import re class TestCase(TestBase): diff --git a/lldb/test/API/tools/lldb-server/commandline/TestGdbRemoteConnection.py b/lldb/test/API/tools/lldb-server/commandline/TestGdbRemoteConnection.py index 7e37de53494b3..12946d9d42d11 100644 --- a/lldb/test/API/tools/lldb-server/commandline/TestGdbRemoteConnection.py +++ b/lldb/test/API/tools/lldb-server/commandline/TestGdbRemoteConnection.py @@ -6,7 +6,6 @@ from lldbgdbserverutils import Server import lldbsuite.test.lldbplatformutil from lldbgdbserverutils import Pipe -import lldb class TestGdbRemoteConnection(gdbremote_testcase.GdbRemoteTestCaseBase): >From 2583fd2ceda0abfca3d454df1477c0c711af6d03 Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 13:51:09 -0800 Subject: [PATCH 07/13] Another round of inadvertent import removal --- lldb/test/API/macosx/simulator/TestSimulatorPlatform.py | 1 - lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py | 1 - 2 files changed, 2 deletions(-) diff --git a/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py b/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py index 2773a2cf072e4..b6f6368f6da80 100644 --- a/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py +++ b/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py @@ -3,7 +3,6 @@ from lldbsuite.test.decorators import * import lldbsuite.test.lldbutil as lldbutil import json -import subprocess class TestSimulatorPlatformLaunching(TestBase): diff --git a/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py b/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py index 34284cb23b269..66a3cba83ff45 100644 --- a/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py +++ b/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py @@ -9,7 +9,6 @@ from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil -import shutil class TestSkinnyCorefile(TestBase): >From acf8b20cb8aef1445cdcd94c89b1b0c9a76366ef Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 14:02:32 -0800 Subject: [PATCH 08/13] Opt-out more tests based on Linux CI test failures --- .../platform/launchgdbserver/TestPlatformLaunchGDBServer.py | 1 + .../commands/target/dump-separate-debug-info/dwo/TestDumpDwo.py | 1 + .../breakpoint/comp_dir_symlink/TestCompDirSymLink.py | 2 ++ .../shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py | 2 ++ lldb/test/API/lang/cpp/unique-types3/TestUniqueTypes3.py | 2 ++ .../unified_section_list/TestModuleUnifiedSectionList.py | 2 ++ lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py | 2 ++ 7 files changed, 12 insertions(+) diff --git a/lldb/test/API/commands/platform/launchgdbserver/TestPlatformLaunchGDBServer.py b/lldb/test/API/commands/platform/launchgdbserver/TestPlatformLaunchGDBServer.py index 65f0cefae96b4..e9e6845c0f549 100644 --- a/lldb/test/API/commands/platform/launchgdbserver/TestPlatformLaunchGDBServer.py +++ b/lldb/test/API/commands/platform/launchgdbserver/TestPlatformLaunchGDBServer.py @@ -9,6 +9,7 @@ class TestPlatformProcessLaunchGDBServer(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def _launch_and_connect(self, exe): hostname = socket.getaddrinfo("localhost", 0, proto=socket.IPPROTO_TCP)[0][4][0] diff --git a/lldb/test/API/commands/target/dump-separate-debug-info/dwo/TestDumpDwo.py b/lldb/test/API/commands/target/dump-separate-debug-info/dwo/TestDumpDwo.py index d819b5ed9ca87..7ac4e16e8cdcb 100644 --- a/lldb/test/API/commands/target/dump-separate-debug-info/dwo/TestDumpDwo.py +++ b/lldb/test/API/commands/target/dump-separate-debug-info/dwo/TestDumpDwo.py @@ -12,6 +12,7 @@ class TestDumpDWO(lldbtest.TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False def get_dwos_from_json_output(self): """Returns a dictionary of `symfile` -> {`dwo_name` -> dwo_info object}.""" diff --git a/lldb/test/API/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py b/lldb/test/API/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py index ca2c7c3d1ad93..1430eb890c2e6 100644 --- a/lldb/test/API/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py +++ b/lldb/test/API/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py @@ -16,6 +16,8 @@ class CompDirSymLinkTestCase(TestBase): + SHARED_BUILD_TESTCASE = False + def setUp(self): # Call super's setUp(). TestBase.setUp(self) diff --git a/lldb/test/API/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py b/lldb/test/API/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py index 5440778572f8d..173ebc769b922 100644 --- a/lldb/test/API/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py +++ b/lldb/test/API/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py @@ -9,6 +9,8 @@ class SharedLibStrippedTestCase(TestBase): + SHARED_BUILD_TESTCASE = False + @expectedFailureAll(oslist=["windows"]) # Sometimes fails with: # error: Couldn't allocate space for materialized struct: Couldn't malloc: address space is full diff --git a/lldb/test/API/lang/cpp/unique-types3/TestUniqueTypes3.py b/lldb/test/API/lang/cpp/unique-types3/TestUniqueTypes3.py index f72701b5eee07..9f41bbeee0636 100644 --- a/lldb/test/API/lang/cpp/unique-types3/TestUniqueTypes3.py +++ b/lldb/test/API/lang/cpp/unique-types3/TestUniqueTypes3.py @@ -9,6 +9,8 @@ class UniqueTypesTestCase3(TestBase): + SHARED_BUILD_TESTCASE = False + def do_test(self, debug_flags): """Test that we display the correct template instantiation.""" self.build(dictionary=debug_flags) diff --git a/lldb/test/API/python_api/unified_section_list/TestModuleUnifiedSectionList.py b/lldb/test/API/python_api/unified_section_list/TestModuleUnifiedSectionList.py index 93b23d0ba81cb..a559307e59930 100644 --- a/lldb/test/API/python_api/unified_section_list/TestModuleUnifiedSectionList.py +++ b/lldb/test/API/python_api/unified_section_list/TestModuleUnifiedSectionList.py @@ -13,6 +13,8 @@ class ModuleUnifiedSectionList(TestBase): + SHARED_BUILD_TESTCASE = False + @skipUnlessPlatform(["linux", "freebsd", "netbsd"]) def test_unified_section_list(self): self.build() diff --git a/lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py b/lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py index 76b0b204123dd..fd08abc72b4bc 100644 --- a/lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py +++ b/lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py @@ -43,6 +43,8 @@ def uint32_trunc(x): class TestGdbRemotePlatformFile(GdbRemoteTestCaseBase): + BUILD_SHARED_TESTCASE = False + @skipIfWindows @add_test_categories(["llgs"]) def test_platform_file_rdonly(self): >From 5a83c784850a3089f213bb7e1d03b7000abccce4 Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 14:23:22 -0800 Subject: [PATCH 09/13] Opt-out TestStepUntilAPI.py --- .../API/functionalities/thread/step_until/TestStepUntilAPI.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lldb/test/API/functionalities/thread/step_until/TestStepUntilAPI.py b/lldb/test/API/functionalities/thread/step_until/TestStepUntilAPI.py index 08d78fb996c75..4d7e93ffefb5f 100644 --- a/lldb/test/API/functionalities/thread/step_until/TestStepUntilAPI.py +++ b/lldb/test/API/functionalities/thread/step_until/TestStepUntilAPI.py @@ -6,6 +6,7 @@ class TestStepUntilAPI(TestBase): NO_DEBUG_INFO_TESTCASE = True + BUILD_SHARED_TESTCASE = False def setUp(self): super().setUp() >From bbd8b4738447720865631bd0df8e363838c15210 Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 14:40:19 -0800 Subject: [PATCH 10/13] Opt-out TestDataFormatterStdString.py --- .../generic/string/TestDataFormatterStdString.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/string/TestDataFormatterStdString.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/string/TestDataFormatterStdString.py index 00047e419de37..34989aea9de6e 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/string/TestDataFormatterStdString.py +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/string/TestDataFormatterStdString.py @@ -12,6 +12,7 @@ class StdStringDataFormatterTestCase(TestBase): TEST_WITH_PDB_DEBUG_INFO = True + SHARED_BUILD_TESTCASE = False def setUp(self): # Call super's setUp(). >From 6c0f4816277bf4e033570a2d1bc3ead4df3c6351 Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 14:53:42 -0800 Subject: [PATCH 11/13] Fix spelling of SHARED_BUILD_TESTCASE --- .../API/functionalities/thread/step_until/TestStepUntilAPI.py | 2 +- lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lldb/test/API/functionalities/thread/step_until/TestStepUntilAPI.py b/lldb/test/API/functionalities/thread/step_until/TestStepUntilAPI.py index 4d7e93ffefb5f..8181f27a0d669 100644 --- a/lldb/test/API/functionalities/thread/step_until/TestStepUntilAPI.py +++ b/lldb/test/API/functionalities/thread/step_until/TestStepUntilAPI.py @@ -6,7 +6,7 @@ class TestStepUntilAPI(TestBase): NO_DEBUG_INFO_TESTCASE = True - BUILD_SHARED_TESTCASE = False + SHARED_BUILD_TESTCASE = False def setUp(self): super().setUp() diff --git a/lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py b/lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py index fd08abc72b4bc..4bfd816ae2cdb 100644 --- a/lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py +++ b/lldb/test/API/tools/lldb-server/TestGdbRemotePlatformFile.py @@ -43,7 +43,7 @@ def uint32_trunc(x): class TestGdbRemotePlatformFile(GdbRemoteTestCaseBase): - BUILD_SHARED_TESTCASE = False + SHARED_BUILD_TESTCASE = False @skipIfWindows @add_test_categories(["llgs"]) >From a770536d3fd9ecd5accae2bebb6519afef125395 Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 15:03:18 -0800 Subject: [PATCH 12/13] Opt-out TestPlatformConnect.py --- lldb/test/API/commands/platform/connect/TestPlatformConnect.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lldb/test/API/commands/platform/connect/TestPlatformConnect.py b/lldb/test/API/commands/platform/connect/TestPlatformConnect.py index 5df0c16fbd1f7..0f9a51e216215 100644 --- a/lldb/test/API/commands/platform/connect/TestPlatformConnect.py +++ b/lldb/test/API/commands/platform/connect/TestPlatformConnect.py @@ -8,6 +8,7 @@ class TestPlatformProcessConnect(TestBase): NO_DEBUG_INFO_TESTCASE = True + SHARED_BUILD_TESTCASE = False @skipIfRemote @expectedFailureAll(hostoslist=["windows"], triple=".*-android") >From 4d0c0702a30646c3d152c5caf77a4205539ab76b Mon Sep 17 00:00:00 2001 From: Dave Lee <[email protected]> Date: Tue, 17 Feb 2026 15:47:32 -0800 Subject: [PATCH 13/13] Update comment doc for SHARED_BUILD_TESTCASE --- lldb/packages/Python/lldbsuite/test/lldbtest.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index c7df01dba2c80..015abfd4e00d8 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -569,8 +569,9 @@ class Base(unittest.TestCase): # Can be overridden by the LLDB_TIME_WAIT_NEXT_LAUNCH environment variable. timeWaitNextLaunch = 1.0 - # Subclasses can set this to True to avoid repeated building of the test - # source (by default, a separate build happens for each test function). + # Some test case classes require a separate build directory for test + # function. Subclasses can set this to False in those cases. This slows down + # the test, but provides isolation where needed. SHARED_BUILD_TESTCASE = True @staticmethod _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
