[Lldb-commits] [lldb] [lldb] Add skipIfWasm decorator and skip unsupported WebAssembly tests (PR #194761)

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 28 17:55:21 PDT 2026


https://github.com/JDevlieghere created https://github.com/llvm/llvm-project/pull/194761

Add a new `skipIfWasm` test decorator that skips tests on the "wasip1" and "wasi" platforms, and apply it to the test classes that rely on expression evaluation or lldb-server, neither of which is available when debugging WebAssembly targets.

>From a6a5563fbe9ef621eae99db3c84edc4030e296da Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <jonas at devlieghere.com>
Date: Tue, 28 Apr 2026 17:47:51 -0700
Subject: [PATCH] [lldb] Add skipIfWasm decorator and skip unsupported
 WebAssembly tests

Add a new `skipIfWasm` test decorator that skips tests on the "wasip1"
and "wasi" platforms, and apply it to the test classes that rely on
expression evaluation or lldb-server, neither of which is available when
debugging WebAssembly targets.
---
 lldb/packages/Python/lldbsuite/test/decorators.py            | 5 +++++
 .../lldbsuite/test/tools/lldb-server/gdbremote_testcase.py   | 2 ++
 lldb/test/API/commands/dwim-print/TestDWIMPrint.py           | 1 +
 .../expression/anonymous-struct/TestCallUserAnonTypedef.py   | 1 +
 .../TestArgumentPassingRestrictions.py                       | 1 +
 .../expression/call-function/TestCallStdStringFunction.py    | 1 +
 .../expression/call-function/TestCallStopAndContinue.py      | 1 +
 .../expression/call-function/TestCallUserDefinedFunction.py  | 1 +
 .../TestClassTemplateSpecializationParametersHandling.py     | 1 +
 .../commands/expression/context-object/TestContextObject.py  | 1 +
 .../expression/expr_inside_lambda/TestExprInsideLambdas.py   | 1 +
 .../API/commands/expression/formatters/TestFormatters.py     | 1 +
 .../expression/inline-namespace/TestInlineNamespace.py       | 1 +
 .../expression/namespace-alias/TestInlineNamespaceAlias.py   | 1 +
 .../expression/persistent_types/TestNestedPersistentTypes.py | 1 +
 .../expression/persistent_types/TestPersistentTypes.py       | 1 +
 .../API/commands/expression/pr35310/TestExprsBug35310.py     | 1 +
 .../commands/expression/radar_9531204/TestPrintfAfterUp.py   | 1 +
 .../expression/radar_9673664/TestExprHelpExamples.py         | 1 +
 .../expression/result_numbering/TestResultNumbering.py       | 1 +
 lldb/test/API/commands/expression/test/TestExprs.py          | 1 +
 .../API/commands/expression/timeout/TestCallWithTimeout.py   | 1 +
 .../expression/unwind_expression/TestUnwindExpression.py     | 1 +
 .../API/commands/expression/xvalue/TestXValuePrinting.py     | 1 +
 lldb/test/API/commands/target/stop-hooks/TestStopHooks.py    | 1 +
 .../data-formatter/builtin-formats/TestBuiltinFormats.py     | 1 +
 .../data-formatter-cpp/TestDataFormatterCpp.py               | 1 +
 .../data-formatter-synthval/TestDataFormatterSynthVal.py     | 1 +
 lldb/test/API/lang/c/strings/TestCStrings.py                 | 1 +
 lldb/test/API/lang/cpp/auto/TestCPPAuto.py                   | 1 +
 lldb/test/API/lang/cpp/call-function/TestCallCPPFunction.py  | 1 +
 lldb/test/API/lang/cpp/chained-calls/TestCppChainedCalls.py  | 1 +
 .../TestClassTemplateParameterPack.py                        | 1 +
 .../TestConstStaticIntegralMemberInt128.py                   | 1 +
 lldb/test/API/lang/cpp/constructors/TestCppConstructors.py   | 1 +
 .../cpp/covariant-return-types/TestCovariantReturnTypes.py   | 1 +
 .../const_method/TestExprInConstMethod.py                    | 1 +
 .../const_volatile_method/TestExprInConstVolatileMethod.py   | 1 +
 .../cv_qualified_objects/TestExprOnCVQualifiedObjects.py     | 1 +
 .../non_const_method/TestExprInNonConstMethod.py             | 1 +
 .../template_const_method/TestExprInTemplateConstMethod.py   | 1 +
 .../TestExprInTemplateNonConstMethod.py                      | 1 +
 .../TestFunctionCallFromObjectFile.py                        | 1 +
 .../cpp/function-qualifiers/TestCppFunctionQualifiers.py     | 1 +
 .../function-ref-qualifiers/TestCppFunctionRefQualifiers.py  | 1 +
 .../cpp/multiple-inheritance/TestCppMultipleInheritance.py   | 1 +
 lldb/test/API/lang/cpp/namespace/TestNamespace.py            | 1 +
 .../lang/cpp/overloaded-functions/TestOverloadedFunctions.py | 1 +
 .../API/lang/cpp/rvalue-references/TestRvalueReferences.py   | 1 +
 lldb/test/API/lang/cpp/scope/TestCppScope.py                 | 1 +
 .../test/API/lang/cpp/static_methods/TestCPPStaticMethods.py | 1 +
 .../cpp/this_class_type_mixing/TestThisClassTypeMixing.py    | 1 +
 lldb/test/API/lang/cpp/typedef/TestCppTypedef.py             | 1 +
 .../API/lang/cpp/unicode-literals/TestUnicodeLiterals.py     | 1 +
 .../union-static-data-members/TestCppUnionStaticMembers.py   | 1 +
 .../lang/cpp/virtual-functions/TestCppVirtualFunctions.py    | 1 +
 56 files changed, 61 insertions(+)

diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py
index 32c68d7c5f08d..914a78ccd0ec6 100644
--- a/lldb/packages/Python/lldbsuite/test/decorators.py
+++ b/lldb/packages/Python/lldbsuite/test/decorators.py
@@ -863,6 +863,11 @@ def skipIfLinux(func):
     return skipIfPlatform(["linux"])(func)
 
 
+def skipIfWasm(func):
+    """Decorate the item to skip tests that should be skipped on WebAssembly."""
+    return skipIfPlatform(["wasip1", "wasi"])(func)
+
+
 def skipIfWindows(func=None, windows_version=None):
     """Decorate the item to skip tests that should be skipped on Windows."""
 
diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
index d9a31d3f14449..995dc6264d3ca 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
@@ -15,6 +15,7 @@
 import time
 from lldbsuite.test import configuration
 from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import skipIfWasm
 from lldbsuite.support import seven
 from lldbgdbserverutils import *
 import logging
@@ -55,6 +56,7 @@ def test_method(self, attrvalue=attrvalue):
         return super(GdbRemoteTestCaseFactory, cls).__new__(cls, name, bases, newattrs)
 
 
+ at skipIfWasm  # wasm uses runtime's GDB stub, not lldb-server
 class GdbRemoteTestCaseBase(Base, metaclass=GdbRemoteTestCaseFactory):
     # Default time out in seconds. The timeout is increased tenfold under Asan.
     DEFAULT_TIMEOUT = 20 * (10 if ("ASAN_OPTIONS" in os.environ) else 1)
diff --git a/lldb/test/API/commands/dwim-print/TestDWIMPrint.py b/lldb/test/API/commands/dwim-print/TestDWIMPrint.py
index 9eaa8b3ca2cc9..68b93d4a445ab 100644
--- a/lldb/test/API/commands/dwim-print/TestDWIMPrint.py
+++ b/lldb/test/API/commands/dwim-print/TestDWIMPrint.py
@@ -9,6 +9,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def _run_cmd(self, cmd: str) -> str:
         """Run the given lldb command and return its output."""
diff --git a/lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py b/lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py
index 3be03a6caf8c7..4d11a2b8c8b05 100644
--- a/lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py
+++ b/lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py
@@ -13,6 +13,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestExprLookupAnonStructTypedef(TestBase):
     def test(self):
         """Test typedeffed untagged struct arguments for function call expressions"""
diff --git a/lldb/test/API/commands/expression/argument_passing_restrictions/TestArgumentPassingRestrictions.py b/lldb/test/API/commands/expression/argument_passing_restrictions/TestArgumentPassingRestrictions.py
index 0e4b2c84b5687..526bfb27ce8ac 100644
--- a/lldb/test/API/commands/expression/argument_passing_restrictions/TestArgumentPassingRestrictions.py
+++ b/lldb/test/API/commands/expression/argument_passing_restrictions/TestArgumentPassingRestrictions.py
@@ -15,6 +15,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestArgumentPassingRestrictions(TestBase):
     @skipIf(compiler="clang", compiler_version=["<", "7.0"])
     def test_argument_passing_restrictions(self):
diff --git a/lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py b/lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py
index 5c2f1f454c494..847839aec0be1 100644
--- a/lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py
+++ b/lldb/test/API/commands/expression/call-function/TestCallStdStringFunction.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class ExprCommandCallFunctionTestCase(TestBase):
     @expectedFailureAll(
         compiler="icc", bugnumber="llvm.org/pr14437, fails with ICC 13.1"
diff --git a/lldb/test/API/commands/expression/call-function/TestCallStopAndContinue.py b/lldb/test/API/commands/expression/call-function/TestCallStopAndContinue.py
index d856b5c23a5ea..63ad025f2b53b 100644
--- a/lldb/test/API/commands/expression/call-function/TestCallStopAndContinue.py
+++ b/lldb/test/API/commands/expression/call-function/TestCallStopAndContinue.py
@@ -7,6 +7,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class ExprCommandCallStopContinueTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py b/lldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py
index 8ddc2c73c05ae..0ce0585953541 100644
--- a/lldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py
+++ b/lldb/test/API/commands/expression/call-function/TestCallUserDefinedFunction.py
@@ -13,6 +13,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class ExprCommandCallUserDefinedFunction(TestBase):
     def test(self):
         """Test return values of user defined function calls."""
diff --git a/lldb/test/API/commands/expression/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py b/lldb/test/API/commands/expression/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py
index 07c149758ae36..b378e9829869b 100644
--- a/lldb/test/API/commands/expression/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py
+++ b/lldb/test/API/commands/expression/class_template_specialization_empty_pack/TestClassTemplateSpecializationParametersHandling.py
@@ -11,6 +11,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestClassTemplateSpecializationParametersHandling(TestBase):
     def test_class_template_specialization(self):
         self.build()
diff --git a/lldb/test/API/commands/expression/context-object/TestContextObject.py b/lldb/test/API/commands/expression/context-object/TestContextObject.py
index 1ed629a42c1ee..084749f5939b7 100644
--- a/lldb/test/API/commands/expression/context-object/TestContextObject.py
+++ b/lldb/test/API/commands/expression/context-object/TestContextObject.py
@@ -7,6 +7,7 @@
 from lldbsuite.test.lldbtest import *
 
 
+ at skipIfWasm  # no expression evaluation
 class ContextObjectTestCase(TestBase):
     def test_context_object(self):
         """Tests expression evaluation in context of an object."""
diff --git a/lldb/test/API/commands/expression/expr_inside_lambda/TestExprInsideLambdas.py b/lldb/test/API/commands/expression/expr_inside_lambda/TestExprInsideLambdas.py
index 0a7683b310f43..e8c74dee45a45 100644
--- a/lldb/test/API/commands/expression/expr_inside_lambda/TestExprInsideLambdas.py
+++ b/lldb/test/API/commands/expression/expr_inside_lambda/TestExprInsideLambdas.py
@@ -9,6 +9,7 @@
 from lldbsuite.test.lldbtest import *
 
 
+ at skipIfWasm  # no expression evaluation
 class ExprInsideLambdaTestCase(TestBase):
     def expectExprError(self, expr: str, expected: str):
         frame = self.thread.GetFrameAtIndex(0)
diff --git a/lldb/test/API/commands/expression/formatters/TestFormatters.py b/lldb/test/API/commands/expression/formatters/TestFormatters.py
index 20441c31978aa..f520c408af171 100644
--- a/lldb/test/API/commands/expression/formatters/TestFormatters.py
+++ b/lldb/test/API/commands/expression/formatters/TestFormatters.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class ExprFormattersTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/commands/expression/inline-namespace/TestInlineNamespace.py b/lldb/test/API/commands/expression/inline-namespace/TestInlineNamespace.py
index 5b948e4e51ca9..a2d6eef63c1a5 100644
--- a/lldb/test/API/commands/expression/inline-namespace/TestInlineNamespace.py
+++ b/lldb/test/API/commands/expression/inline-namespace/TestInlineNamespace.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestInlineNamespace(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/commands/expression/namespace-alias/TestInlineNamespaceAlias.py b/lldb/test/API/commands/expression/namespace-alias/TestInlineNamespaceAlias.py
index 82bc8d16623da..eede597a57fca 100644
--- a/lldb/test/API/commands/expression/namespace-alias/TestInlineNamespaceAlias.py
+++ b/lldb/test/API/commands/expression/namespace-alias/TestInlineNamespaceAlias.py
@@ -11,6 +11,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestInlineNamespace(TestBase):
     @skipIf(compiler="clang", compiler_version=["<", "16.0"])
     def test(self):
diff --git a/lldb/test/API/commands/expression/persistent_types/TestNestedPersistentTypes.py b/lldb/test/API/commands/expression/persistent_types/TestNestedPersistentTypes.py
index 4890bca40aac9..fc85305ff32cf 100644
--- a/lldb/test/API/commands/expression/persistent_types/TestNestedPersistentTypes.py
+++ b/lldb/test/API/commands/expression/persistent_types/TestNestedPersistentTypes.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class NestedPersistentTypesTestCase(TestBase):
     def test_persistent_types(self):
         """Test that nested persistent types work."""
diff --git a/lldb/test/API/commands/expression/persistent_types/TestPersistentTypes.py b/lldb/test/API/commands/expression/persistent_types/TestPersistentTypes.py
index 007027b9b3b54..7defad224fab8 100644
--- a/lldb/test/API/commands/expression/persistent_types/TestPersistentTypes.py
+++ b/lldb/test/API/commands/expression/persistent_types/TestPersistentTypes.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class PersistenttypesTestCase(TestBase):
     def test_persistent_types(self):
         """Test that lldb persistent types works correctly."""
diff --git a/lldb/test/API/commands/expression/pr35310/TestExprsBug35310.py b/lldb/test/API/commands/expression/pr35310/TestExprsBug35310.py
index ea609367bc5b0..2bf1b866c22f7 100644
--- a/lldb/test/API/commands/expression/pr35310/TestExprsBug35310.py
+++ b/lldb/test/API/commands/expression/pr35310/TestExprsBug35310.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class ExprBug35310(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/commands/expression/radar_9531204/TestPrintfAfterUp.py b/lldb/test/API/commands/expression/radar_9531204/TestPrintfAfterUp.py
index 42f10d60540d9..57d2eeec19a0b 100644
--- a/lldb/test/API/commands/expression/radar_9531204/TestPrintfAfterUp.py
+++ b/lldb/test/API/commands/expression/radar_9531204/TestPrintfAfterUp.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class Radar9531204TestCase(TestBase):
     # rdar://problem/9531204
     def test_expr_commands(self):
diff --git a/lldb/test/API/commands/expression/radar_9673664/TestExprHelpExamples.py b/lldb/test/API/commands/expression/radar_9673664/TestExprHelpExamples.py
index 5f41b93c58c5c..a2467ecc3d7a7 100644
--- a/lldb/test/API/commands/expression/radar_9673664/TestExprHelpExamples.py
+++ b/lldb/test/API/commands/expression/radar_9673664/TestExprHelpExamples.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class Radar9673644TestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/commands/expression/result_numbering/TestResultNumbering.py b/lldb/test/API/commands/expression/result_numbering/TestResultNumbering.py
index c6d4ed0c9a88c..aa5ce9a9f4dc0 100644
--- a/lldb/test/API/commands/expression/result_numbering/TestResultNumbering.py
+++ b/lldb/test/API/commands/expression/result_numbering/TestResultNumbering.py
@@ -9,6 +9,7 @@
 from lldbsuite.test.lldbtest import *
 
 
+ at skipIfWasm  # no expression evaluation
 class TestExpressionResultNumbering(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/commands/expression/test/TestExprs.py b/lldb/test/API/commands/expression/test/TestExprs.py
index 17fd952130ee7..e76457a1f9bbe 100644
--- a/lldb/test/API/commands/expression/test/TestExprs.py
+++ b/lldb/test/API/commands/expression/test/TestExprs.py
@@ -19,6 +19,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class BasicExprCommandsTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py b/lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py
index de074e8ff7b09..900f06756f1bb 100644
--- a/lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py
+++ b/lldb/test/API/commands/expression/timeout/TestCallWithTimeout.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class ExprCommandWithTimeoutsTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py b/lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py
index c61fe5d01fd5b..dfaad8cf6c281 100644
--- a/lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py
+++ b/lldb/test/API/commands/expression/unwind_expression/TestUnwindExpression.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class UnwindFromExpressionTest(TestBase):
     main_spec = lldb.SBFileSpec("main.cpp", False)
 
diff --git a/lldb/test/API/commands/expression/xvalue/TestXValuePrinting.py b/lldb/test/API/commands/expression/xvalue/TestXValuePrinting.py
index 70ed4a80927ed..fd8246feb91cc 100644
--- a/lldb/test/API/commands/expression/xvalue/TestXValuePrinting.py
+++ b/lldb/test/API/commands/expression/xvalue/TestXValuePrinting.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class ExprXValuePrintingTestCase(TestBase):
     def test(self):
         """Printing an xvalue should work."""
diff --git a/lldb/test/API/commands/target/stop-hooks/TestStopHooks.py b/lldb/test/API/commands/target/stop-hooks/TestStopHooks.py
index f44af59c698e0..e027b6ec3eb4f 100644
--- a/lldb/test/API/commands/target/stop-hooks/TestStopHooks.py
+++ b/lldb/test/API/commands/target/stop-hooks/TestStopHooks.py
@@ -8,6 +8,7 @@
 from lldbsuite.test.lldbtest import *
 
 
+ at skipIfWasm  # no expression evaluation
 class TestStopHooks(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/functionalities/data-formatter/builtin-formats/TestBuiltinFormats.py b/lldb/test/API/functionalities/data-formatter/builtin-formats/TestBuiltinFormats.py
index 757017fc7c082..d43fbd531fbfa 100644
--- a/lldb/test/API/functionalities/data-formatter/builtin-formats/TestBuiltinFormats.py
+++ b/lldb/test/API/functionalities/data-formatter/builtin-formats/TestBuiltinFormats.py
@@ -8,6 +8,7 @@
 from lldbsuite.test.lldbtest import *
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def getFormatted(self, format, expr):
         """
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py b/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
index a848c6257510e..0717e49137da7 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class CppDataFormatterTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py b/lldb/test/API/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
index aa91dfdb92f64..29a0df1872dc1 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class DataFormatterSynthValueTestCase(TestBase):
     def setUp(self):
         # Call super's setUp().
diff --git a/lldb/test/API/lang/c/strings/TestCStrings.py b/lldb/test/API/lang/c/strings/TestCStrings.py
index f11006f7feefe..86668a6e3c238 100644
--- a/lldb/test/API/lang/c/strings/TestCStrings.py
+++ b/lldb/test/API/lang/c/strings/TestCStrings.py
@@ -7,6 +7,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class CStringsTestCase(TestBase):
     def test_with_run_command(self):
         """Tests that C strings work as expected in expressions"""
diff --git a/lldb/test/API/lang/cpp/auto/TestCPPAuto.py b/lldb/test/API/lang/cpp/auto/TestCPPAuto.py
index 915e2197f9f59..3b1445897481e 100644
--- a/lldb/test/API/lang/cpp/auto/TestCPPAuto.py
+++ b/lldb/test/API/lang/cpp/auto/TestCPPAuto.py
@@ -7,6 +7,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class CPPAutoTestCase(TestBase):
     def test_with_run_command(self):
         """Test that auto types work in the expression parser"""
diff --git a/lldb/test/API/lang/cpp/call-function/TestCallCPPFunction.py b/lldb/test/API/lang/cpp/call-function/TestCallCPPFunction.py
index efce7367fad24..f422bc691e225 100644
--- a/lldb/test/API/lang/cpp/call-function/TestCallCPPFunction.py
+++ b/lldb/test/API/lang/cpp/call-function/TestCallCPPFunction.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class CallCPPFunctionTestCase(TestBase):
     def setUp(self):
         TestBase.setUp(self)
diff --git a/lldb/test/API/lang/cpp/chained-calls/TestCppChainedCalls.py b/lldb/test/API/lang/cpp/chained-calls/TestCppChainedCalls.py
index fa2c5dca27488..0765a66bfefc5 100644
--- a/lldb/test/API/lang/cpp/chained-calls/TestCppChainedCalls.py
+++ b/lldb/test/API/lang/cpp/chained-calls/TestCppChainedCalls.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCppChainedCalls(TestBase):
     def test_with_run_command(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/class-template-parameter-pack/TestClassTemplateParameterPack.py b/lldb/test/API/lang/cpp/class-template-parameter-pack/TestClassTemplateParameterPack.py
index b6baadf7edb5e..57cda83f94502 100644
--- a/lldb/test/API/lang/cpp/class-template-parameter-pack/TestClassTemplateParameterPack.py
+++ b/lldb/test/API/lang/cpp/class-template-parameter-pack/TestClassTemplateParameterPack.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/const_static_integral_member_int128/TestConstStaticIntegralMemberInt128.py b/lldb/test/API/lang/cpp/const_static_integral_member_int128/TestConstStaticIntegralMemberInt128.py
index 2b73580ff6bba..c36154e5770ed 100644
--- a/lldb/test/API/lang/cpp/const_static_integral_member_int128/TestConstStaticIntegralMemberInt128.py
+++ b/lldb/test/API/lang/cpp/const_static_integral_member_int128/TestConstStaticIntegralMemberInt128.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     # int128 is not available on 32-bit ARM.
     @skipIf(archs=["arm$"])
diff --git a/lldb/test/API/lang/cpp/constructors/TestCppConstructors.py b/lldb/test/API/lang/cpp/constructors/TestCppConstructors.py
index baf06e4c59fbb..1f7e25517e765 100644
--- a/lldb/test/API/lang/cpp/constructors/TestCppConstructors.py
+++ b/lldb/test/API/lang/cpp/constructors/TestCppConstructors.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     @expectedFailureAll(bugnumber="llvm.org/pr50814", compiler="gcc")
     def test_constructors(self):
diff --git a/lldb/test/API/lang/cpp/covariant-return-types/TestCovariantReturnTypes.py b/lldb/test/API/lang/cpp/covariant-return-types/TestCovariantReturnTypes.py
index e43ed6efcc9f4..b2dab19cba442 100644
--- a/lldb/test/API/lang/cpp/covariant-return-types/TestCovariantReturnTypes.py
+++ b/lldb/test/API/lang/cpp/covariant-return-types/TestCovariantReturnTypes.py
@@ -3,6 +3,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     NO_DEBUG_INFO_TESTCASE = True
 
diff --git a/lldb/test/API/lang/cpp/expression-context-qualifiers/const_method/TestExprInConstMethod.py b/lldb/test/API/lang/cpp/expression-context-qualifiers/const_method/TestExprInConstMethod.py
index a00fe4d5f314b..a830bbc7fd6d8 100644
--- a/lldb/test/API/lang/cpp/expression-context-qualifiers/const_method/TestExprInConstMethod.py
+++ b/lldb/test/API/lang/cpp/expression-context-qualifiers/const_method/TestExprInConstMethod.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/expression-context-qualifiers/const_volatile_method/TestExprInConstVolatileMethod.py b/lldb/test/API/lang/cpp/expression-context-qualifiers/const_volatile_method/TestExprInConstVolatileMethod.py
index 6d983dc5108a8..aacac82d2d7bc 100644
--- a/lldb/test/API/lang/cpp/expression-context-qualifiers/const_volatile_method/TestExprInConstVolatileMethod.py
+++ b/lldb/test/API/lang/cpp/expression-context-qualifiers/const_volatile_method/TestExprInConstVolatileMethod.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/expression-context-qualifiers/cv_qualified_objects/TestExprOnCVQualifiedObjects.py b/lldb/test/API/lang/cpp/expression-context-qualifiers/cv_qualified_objects/TestExprOnCVQualifiedObjects.py
index 0f661471df749..ce1a19d896c59 100644
--- a/lldb/test/API/lang/cpp/expression-context-qualifiers/cv_qualified_objects/TestExprOnCVQualifiedObjects.py
+++ b/lldb/test/API/lang/cpp/expression-context-qualifiers/cv_qualified_objects/TestExprOnCVQualifiedObjects.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/expression-context-qualifiers/non_const_method/TestExprInNonConstMethod.py b/lldb/test/API/lang/cpp/expression-context-qualifiers/non_const_method/TestExprInNonConstMethod.py
index 280cf9249d82e..f75b800e0ef95 100644
--- a/lldb/test/API/lang/cpp/expression-context-qualifiers/non_const_method/TestExprInNonConstMethod.py
+++ b/lldb/test/API/lang/cpp/expression-context-qualifiers/non_const_method/TestExprInNonConstMethod.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/expression-context-qualifiers/template_const_method/TestExprInTemplateConstMethod.py b/lldb/test/API/lang/cpp/expression-context-qualifiers/template_const_method/TestExprInTemplateConstMethod.py
index f26bf618d4339..cb07bbe23582d 100644
--- a/lldb/test/API/lang/cpp/expression-context-qualifiers/template_const_method/TestExprInTemplateConstMethod.py
+++ b/lldb/test/API/lang/cpp/expression-context-qualifiers/template_const_method/TestExprInTemplateConstMethod.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/expression-context-qualifiers/template_non_const_method/TestExprInTemplateNonConstMethod.py b/lldb/test/API/lang/cpp/expression-context-qualifiers/template_non_const_method/TestExprInTemplateNonConstMethod.py
index dd84099d6060e..264451c017b58 100644
--- a/lldb/test/API/lang/cpp/expression-context-qualifiers/template_non_const_method/TestExprInTemplateNonConstMethod.py
+++ b/lldb/test/API/lang/cpp/expression-context-qualifiers/template_non_const_method/TestExprInTemplateNonConstMethod.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/function-call-from-object-file/TestFunctionCallFromObjectFile.py b/lldb/test/API/lang/cpp/function-call-from-object-file/TestFunctionCallFromObjectFile.py
index f0a7aef182a67..3ea5482120c63 100644
--- a/lldb/test/API/lang/cpp/function-call-from-object-file/TestFunctionCallFromObjectFile.py
+++ b/lldb/test/API/lang/cpp/function-call-from-object-file/TestFunctionCallFromObjectFile.py
@@ -15,6 +15,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestFunctionCallFromObjectFile(TestBase):
     def test_lib1(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/function-qualifiers/TestCppFunctionQualifiers.py b/lldb/test/API/lang/cpp/function-qualifiers/TestCppFunctionQualifiers.py
index 93e509478c27a..1f556c811decc 100644
--- a/lldb/test/API/lang/cpp/function-qualifiers/TestCppFunctionQualifiers.py
+++ b/lldb/test/API/lang/cpp/function-qualifiers/TestCppFunctionQualifiers.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestFunctionQualifiers(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/function-ref-qualifiers/TestCppFunctionRefQualifiers.py b/lldb/test/API/lang/cpp/function-ref-qualifiers/TestCppFunctionRefQualifiers.py
index 5ab5ae12a4e55..1ad689891c8cd 100644
--- a/lldb/test/API/lang/cpp/function-ref-qualifiers/TestCppFunctionRefQualifiers.py
+++ b/lldb/test/API/lang/cpp/function-ref-qualifiers/TestCppFunctionRefQualifiers.py
@@ -10,6 +10,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestFunctionRefQualifiers(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/multiple-inheritance/TestCppMultipleInheritance.py b/lldb/test/API/lang/cpp/multiple-inheritance/TestCppMultipleInheritance.py
index 9512b289a64a3..9c50881f682a0 100644
--- a/lldb/test/API/lang/cpp/multiple-inheritance/TestCppMultipleInheritance.py
+++ b/lldb/test/API/lang/cpp/multiple-inheritance/TestCppMultipleInheritance.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def test(self):
         self.build()
diff --git a/lldb/test/API/lang/cpp/namespace/TestNamespace.py b/lldb/test/API/lang/cpp/namespace/TestNamespace.py
index 486fad6e0f953..1a1b8f7b60e1a 100644
--- a/lldb/test/API/lang/cpp/namespace/TestNamespace.py
+++ b/lldb/test/API/lang/cpp/namespace/TestNamespace.py
@@ -9,6 +9,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class NamespaceBreakpointTestCase(TestBase):
     @expectedFailureAll(bugnumber="llvm.org/pr28548", compiler="gcc")
     @expectedFailureAll(oslist=["windows"])
diff --git a/lldb/test/API/lang/cpp/overloaded-functions/TestOverloadedFunctions.py b/lldb/test/API/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
index e5f75108c894f..035fb1dafac26 100644
--- a/lldb/test/API/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
+++ b/lldb/test/API/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class OverloadedFunctionsTestCase(TestBase):
     def test_with_run_command(self):
         """Test that functions with the same name are resolved correctly"""
diff --git a/lldb/test/API/lang/cpp/rvalue-references/TestRvalueReferences.py b/lldb/test/API/lang/cpp/rvalue-references/TestRvalueReferences.py
index 556e2803c79da..67e855b36bdcc 100644
--- a/lldb/test/API/lang/cpp/rvalue-references/TestRvalueReferences.py
+++ b/lldb/test/API/lang/cpp/rvalue-references/TestRvalueReferences.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class RvalueReferencesTestCase(TestBase):
     # rdar://problem/11479676
     @expectedFailureAll(
diff --git a/lldb/test/API/lang/cpp/scope/TestCppScope.py b/lldb/test/API/lang/cpp/scope/TestCppScope.py
index 95fea27a005f2..7d34156d64516 100644
--- a/lldb/test/API/lang/cpp/scope/TestCppScope.py
+++ b/lldb/test/API/lang/cpp/scope/TestCppScope.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24764")
     def test(self):
diff --git a/lldb/test/API/lang/cpp/static_methods/TestCPPStaticMethods.py b/lldb/test/API/lang/cpp/static_methods/TestCPPStaticMethods.py
index 1050a5ee9435c..5ec95a513ab71 100644
--- a/lldb/test/API/lang/cpp/static_methods/TestCPPStaticMethods.py
+++ b/lldb/test/API/lang/cpp/static_methods/TestCPPStaticMethods.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class CPPStaticMethodsTestCase(TestBase):
     def test_with_run_command(self):
         """Test that static methods are properly distinguished from regular methods"""
diff --git a/lldb/test/API/lang/cpp/this_class_type_mixing/TestThisClassTypeMixing.py b/lldb/test/API/lang/cpp/this_class_type_mixing/TestThisClassTypeMixing.py
index 2321246a2e7e5..775fdccd3f6f1 100644
--- a/lldb/test/API/lang/cpp/this_class_type_mixing/TestThisClassTypeMixing.py
+++ b/lldb/test/API/lang/cpp/this_class_type_mixing/TestThisClassTypeMixing.py
@@ -14,6 +14,7 @@ class by injecting a "$__lldb_expr" member function into the class. This
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     @no_debug_info_test
     def test(self):
diff --git a/lldb/test/API/lang/cpp/typedef/TestCppTypedef.py b/lldb/test/API/lang/cpp/typedef/TestCppTypedef.py
index 1c3869f20c9cc..655b7745286d8 100644
--- a/lldb/test/API/lang/cpp/typedef/TestCppTypedef.py
+++ b/lldb/test/API/lang/cpp/typedef/TestCppTypedef.py
@@ -8,6 +8,7 @@
 from lldbsuite.test import decorators
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCppTypedef(TestBase):
     def test_typedef(self):
         """
diff --git a/lldb/test/API/lang/cpp/unicode-literals/TestUnicodeLiterals.py b/lldb/test/API/lang/cpp/unicode-literals/TestUnicodeLiterals.py
index 50f337c81d9f1..345722d90c19f 100644
--- a/lldb/test/API/lang/cpp/unicode-literals/TestUnicodeLiterals.py
+++ b/lldb/test/API/lang/cpp/unicode-literals/TestUnicodeLiterals.py
@@ -23,6 +23,7 @@
 # }
 
 
+ at skipIfWasm  # no expression evaluation
 class UnicodeLiteralsTestCase(TestBase):
     def test_expr1(self):
         """Test that the expression parser returns proper Unicode strings."""
diff --git a/lldb/test/API/lang/cpp/union-static-data-members/TestCppUnionStaticMembers.py b/lldb/test/API/lang/cpp/union-static-data-members/TestCppUnionStaticMembers.py
index 2047a8fc4dbdf..684661f8ee14c 100644
--- a/lldb/test/API/lang/cpp/union-static-data-members/TestCppUnionStaticMembers.py
+++ b/lldb/test/API/lang/cpp/union-static-data-members/TestCppUnionStaticMembers.py
@@ -8,6 +8,7 @@
 import lldbsuite.test.lldbutil as lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class CppUnionStaticMembersTestCase(TestBase):
     def test_print_union(self):
         """Tests that frame variable and expr work
diff --git a/lldb/test/API/lang/cpp/virtual-functions/TestCppVirtualFunctions.py b/lldb/test/API/lang/cpp/virtual-functions/TestCppVirtualFunctions.py
index c8e972da73730..f329e3e17cb7e 100644
--- a/lldb/test/API/lang/cpp/virtual-functions/TestCppVirtualFunctions.py
+++ b/lldb/test/API/lang/cpp/virtual-functions/TestCppVirtualFunctions.py
@@ -4,6 +4,7 @@
 from lldbsuite.test import lldbutil
 
 
+ at skipIfWasm  # no expression evaluation
 class TestCase(TestBase):
     def common_setup(self):
         self.build()



More information about the lldb-commits mailing list