This revision was automatically updated to reflect the committed changes.
mgorny marked an inline comment as done.
Closed by commit rGa852cf66ea5d: [lldb] [test] Skip ObjC-based tests via 
'objc' category (authored by mgorny).
Herald added a project: LLDB.

Changed prior to commit:
  https://reviews.llvm.org/D91056?vs=303800&id=304122#toc

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91056/new/

https://reviews.llvm.org/D91056

Files:
  lldb/packages/Python/lldbsuite/test/dotest.py
  lldb/test/API/commands/expression/call-throws/TestCallThatThrows.py
  lldb/test/API/commands/expression/context-object-objc/TestContextObjectObjc.py
  lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py
  
lldb/test/API/commands/expression/import_builtin_fileid/TestImportBuiltinFileID.py
  
lldb/test/API/commands/expression/namespace_local_var_same_name_obj_c/TestNamespaceLocalVarSameNameObjC.py
  
lldb/test/API/commands/expression/persist_objc_pointeetype/TestPersistObjCPointeeType.py
  lldb/test/API/commands/expression/po_verbosity/TestPoVerbosity.py
  
lldb/test/API/commands/expression/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
  lldb/test/API/commands/frame/recognizer/.categories
  lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCExpr.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCKVO.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCPlain.py
  
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
  lldb/test/API/functionalities/set-data/TestSetData.py
  lldb/test/API/functionalities/tsan/multiple/TestTsanMultiple.py
  lldb/test/API/lang/objc/bitfield_ivars/TestBitfieldIvars.py
  lldb/test/API/lang/objc/blocks/TestObjCIvarsInBlocks.py
  lldb/test/API/lang/objc/conflicting-definition/TestConflictingDefinition.py
  lldb/test/API/lang/objc/direct-dispatch-step/TestObjCDirectDispatchStepping.py
  lldb/test/API/lang/objc/exceptions/TestObjCExceptions.py
  lldb/test/API/lang/objc/forward-decl/TestForwardDecl.py
  lldb/test/API/lang/objc/foundation/TestConstStrings.py
  lldb/test/API/lang/objc/foundation/TestFoundationDisassembly.py
  lldb/test/API/lang/objc/foundation/TestObjCMethods.py
  lldb/test/API/lang/objc/foundation/TestObjCMethods2.py
  lldb/test/API/lang/objc/foundation/TestObjCMethodsNSArray.py
  lldb/test/API/lang/objc/foundation/TestObjCMethodsNSError.py
  lldb/test/API/lang/objc/foundation/TestObjCMethodsString.py
  lldb/test/API/lang/objc/foundation/TestObjectDescriptionAPI.py
  lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
  lldb/test/API/lang/objc/foundation/TestSymbolTable.py
  lldb/test/API/lang/objc/global_ptrs/TestGlobalObjects.py
  lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
  lldb/test/API/lang/objc/ivar-IMP/TestObjCiVarIMP.py
  lldb/test/API/lang/objc/modules-app-update/TestClangModulesAppUpdate.py
  lldb/test/API/lang/objc/modules-auto-import/TestModulesAutoImport.py
  lldb/test/API/lang/objc/modules-cache/TestClangModulesCache.py
  lldb/test/API/lang/objc/modules-compile-error/TestModulesCompileError.py
  lldb/test/API/lang/objc/modules-hash-mismatch/TestClangModulesHashMismatch.py
  lldb/test/API/lang/objc/modules-incomplete/TestIncompleteModules.py
  lldb/test/API/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
  
lldb/test/API/lang/objc/modules-non-objc-target/TestObjCModulesNonObjCTarget.py
  lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py
  lldb/test/API/lang/objc/modules/TestObjCModules.py
  lldb/test/API/lang/objc/objc++/TestObjCXX.py
  lldb/test/API/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
  lldb/test/API/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
  lldb/test/API/lang/objc/objc-checker/TestObjCCheckers.py
  lldb/test/API/lang/objc/objc-class-method/TestObjCClassMethod.py
  lldb/test/API/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
  lldb/test/API/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
  lldb/test/API/lang/objc/objc-foundation-dictionary-empty/TestNSDictionary0.py
  lldb/test/API/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
  lldb/test/API/lang/objc/objc-ivar-protocols/TestIvarProtocols.py
  lldb/test/API/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
  lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxArray.py
  lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxDictionary.py
  lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxLiteral.py
  lldb/test/API/lang/objc/objc-optimized/TestObjcOptimized.py
  lldb/test/API/lang/objc/objc-property/TestObjCProperty.py
  lldb/test/API/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py
  
lldb/test/API/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
  lldb/test/API/lang/objc/objc-static-method/TestObjCStaticMethod.py
  lldb/test/API/lang/objc/objc-stepping/TestObjCStepping.py
  lldb/test/API/lang/objc/objc-struct-argument/TestObjCStructArgument.py
  lldb/test/API/lang/objc/objc-struct-return/TestObjCStructReturn.py
  lldb/test/API/lang/objc/objc-super/TestObjCSuper.py
  lldb/test/API/lang/objc/objc_direct-methods/TestObjCDirectMethods.py
  lldb/test/API/lang/objc/orderedset/TestOrderedSet.py
  lldb/test/API/lang/objc/print-obj/TestPrintObj.py
  lldb/test/API/lang/objc/ptr_refs/TestPtrRefsObjC.py
  lldb/test/API/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
  lldb/test/API/lang/objc/rdar-10967107/TestRdar10967107.py
  lldb/test/API/lang/objc/rdar-11355592/TestRdar11355592.py
  lldb/test/API/lang/objc/rdar-12408181/TestRdar12408181.py
  lldb/test/API/lang/objc/real-definition/TestRealDefinition.py
  lldb/test/API/lang/objc/self/TestObjCSelf.py
  
lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
  lldb/test/API/lang/objc/unicode-string/TestUnicodeString.py
  lldb/test/API/lang/objc/variadic_methods/TestVariadicMethods.py
  lldb/test/API/lang/objcxx/.categories
  lldb/test/API/lang/objcxx/class-name-clash/TestNameClash.py
  lldb/test/API/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py
  lldb/test/API/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py
  lldb/test/API/lang/objcxx/objcxx-ivar-vector/TestIvarVector.py
  lldb/test/API/macosx/nslog/.categories
  lldb/test/API/python_api/objc_type/TestObjCType.py
  lldb/test/API/python_api/sbtype_typeclass/TestSBTypeTypeClass.py

Index: lldb/test/API/python_api/sbtype_typeclass/TestSBTypeTypeClass.py
===================================================================
--- lldb/test/API/python_api/sbtype_typeclass/TestSBTypeTypeClass.py
+++ lldb/test/API/python_api/sbtype_typeclass/TestSBTypeTypeClass.py
@@ -3,7 +3,7 @@
 
 lldbinline.MakeInlineTest(
     __file__, globals(), [
-        decorators.skipUnlessDarwin,
+        decorators.add_test_categories(["objc"]),
         decorators.expectedFailureAll(
             oslist=['macosx'], archs=['i386'],
             bugnumber='rdar://28656677')])
Index: lldb/test/API/python_api/objc_type/TestObjCType.py
===================================================================
--- lldb/test/API/python_api/objc_type/TestObjCType.py
+++ lldb/test/API/python_api/objc_type/TestObjCType.py
@@ -19,8 +19,7 @@
         TestBase.setUp(self)
         self.line = line_number("main.m", '// Break at this line')
 
-    @skipUnlessDarwin
-    @add_test_categories(['pyapi'])
+    @add_test_categories(['objc', 'pyapi'])
     def test(self):
         """Test SBType for ObjC classes."""
         self.build()
Index: lldb/test/API/macosx/nslog/.categories
===================================================================
--- /dev/null
+++ lldb/test/API/macosx/nslog/.categories
@@ -0,0 +1 @@
+objc
Index: lldb/test/API/lang/objcxx/objcxx-ivar-vector/TestIvarVector.py
===================================================================
--- lldb/test/API/lang/objcxx/objcxx-ivar-vector/TestIvarVector.py
+++ lldb/test/API/lang/objcxx/objcxx-ivar-vector/TestIvarVector.py
@@ -1,5 +1,4 @@
 from lldbsuite.test import decorators
 from lldbsuite.test import lldbinline
 
-lldbinline.MakeInlineTest(
-    __file__, globals(), [decorators.skipUnlessDarwin])
+lldbinline.MakeInlineTest(__file__, globals(), [])
Index: lldb/test/API/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py
===================================================================
--- lldb/test/API/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py
+++ lldb/test/API/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py
@@ -9,7 +9,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test_hide_runtime_support_values(self):
         self.build()
         _, process, _, _ = lldbutil.run_to_source_breakpoint(
Index: lldb/test/API/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py
===================================================================
--- lldb/test/API/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py
+++ lldb/test/API/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py
@@ -7,7 +7,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test_bridged_type_po(self):
         self.build()
         lldbutil.run_to_source_breakpoint(
Index: lldb/test/API/lang/objcxx/class-name-clash/TestNameClash.py
===================================================================
--- lldb/test/API/lang/objcxx/class-name-clash/TestNameClash.py
+++ lldb/test/API/lang/objcxx/class-name-clash/TestNameClash.py
@@ -1,5 +1,4 @@
 from lldbsuite.test import decorators
 from lldbsuite.test import lldbinline
 
-lldbinline.MakeInlineTest(
-    __file__, globals(), [decorators.skipUnlessDarwin])
+lldbinline.MakeInlineTest(__file__, globals(), [])
Index: lldb/test/API/lang/objcxx/.categories
===================================================================
--- /dev/null
+++ lldb/test/API/lang/objcxx/.categories
@@ -0,0 +1 @@
+objc
Index: lldb/test/API/lang/objc/variadic_methods/TestVariadicMethods.py
===================================================================
--- lldb/test/API/lang/objc/variadic_methods/TestVariadicMethods.py
+++ lldb/test/API/lang/objc/variadic_methods/TestVariadicMethods.py
@@ -1,5 +1,3 @@
 from lldbsuite.test import lldbinline
-from lldbsuite.test import decorators
 
-lldbinline.MakeInlineTest(
-    __file__, globals(), [decorators.skipUnlessDarwin])
+lldbinline.MakeInlineTest(__file__, globals(), [])
Index: lldb/test/API/lang/objc/unicode-string/TestUnicodeString.py
===================================================================
--- lldb/test/API/lang/objc/unicode-string/TestUnicodeString.py
+++ lldb/test/API/lang/objc/unicode-string/TestUnicodeString.py
@@ -1,6 +1,4 @@
 from lldbsuite.test import lldbinline
-from lldbsuite.test import decorators
 
 lldbinline.MakeInlineTest(
-    __file__, globals(), [
-        decorators.skipUnlessDarwin])
+    __file__, globals(), [])
Index: lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
===================================================================
--- lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
+++ lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
@@ -21,7 +21,6 @@
         # Find the line number to break inside main().
         self.line = line_number('main.m', '// break here')
 
-    @skipUnlessDarwin
     @expectedFailureAll(oslist=['watchos'], bugnumber="rdar://problem/34642736") # bug in NSDictionary formatting on watchos
     def test_single_entry_dict(self):
         self.build()
Index: lldb/test/API/lang/objc/self/TestObjCSelf.py
===================================================================
--- lldb/test/API/lang/objc/self/TestObjCSelf.py
+++ lldb/test/API/lang/objc/self/TestObjCSelf.py
@@ -11,7 +11,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test_with_run_command(self):
         """Test that the appropriate member variables are available when stopped in Objective-C class and instance methods"""
         self.build()
Index: lldb/test/API/lang/objc/real-definition/TestRealDefinition.py
===================================================================
--- lldb/test/API/lang/objc/real-definition/TestRealDefinition.py
+++ lldb/test/API/lang/objc/real-definition/TestRealDefinition.py
@@ -12,7 +12,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test_frame_var_after_stop_at_interface(self):
         """Test that we can find the implementation for an objective C type"""
         if self.getArchitecture() == 'i386':
@@ -50,7 +49,6 @@
                 "(NSString *)",
                 "foo->_bar->_hidden_ivar = 0x"])
 
-    @skipUnlessDarwin
     def test_frame_var_after_stop_at_implementation(self):
         """Test that we can find the implementation for an objective C type"""
         if self.getArchitecture() == 'i386':
Index: lldb/test/API/lang/objc/rdar-12408181/TestRdar12408181.py
===================================================================
--- lldb/test/API/lang/objc/rdar-12408181/TestRdar12408181.py
+++ lldb/test/API/lang/objc/rdar-12408181/TestRdar12408181.py
@@ -15,7 +15,6 @@
 # test if WindowServer isn't available.
 # Note: Simply applying the @skipIf decorator here confuses the test harness
 # and gives a spurious failure.
-@skipUnlessDarwin
 class Rdar12408181TestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/rdar-11355592/TestRdar11355592.py
===================================================================
--- lldb/test/API/lang/objc/rdar-11355592/TestRdar11355592.py
+++ lldb/test/API/lang/objc/rdar-11355592/TestRdar11355592.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class Rdar10967107TestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/rdar-10967107/TestRdar10967107.py
===================================================================
--- lldb/test/API/lang/objc/rdar-10967107/TestRdar10967107.py
+++ lldb/test/API/lang/objc/rdar-10967107/TestRdar10967107.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class Rdar10967107TestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
===================================================================
--- lldb/test/API/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
+++ lldb/test/API/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class MethodReturningBOOLTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/ptr_refs/TestPtrRefsObjC.py
===================================================================
--- lldb/test/API/lang/objc/ptr_refs/TestPtrRefsObjC.py
+++ lldb/test/API/lang/objc/ptr_refs/TestPtrRefsObjC.py
@@ -14,7 +14,6 @@
     mydir = TestBase.compute_mydir(__file__)
 
     @skipIfAsan # The output looks different under ASAN.
-    @skipUnlessDarwin
     def test_ptr_refs(self):
         """Test the ptr_refs tool on Darwin with Objective-C"""
         self.build()
Index: lldb/test/API/lang/objc/print-obj/TestPrintObj.py
===================================================================
--- lldb/test/API/lang/objc/print-obj/TestPrintObj.py
+++ lldb/test/API/lang/objc/print-obj/TestPrintObj.py
@@ -11,7 +11,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class PrintObjTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/orderedset/TestOrderedSet.py
===================================================================
--- lldb/test/API/lang/objc/orderedset/TestOrderedSet.py
+++ lldb/test/API/lang/objc/orderedset/TestOrderedSet.py
@@ -6,7 +6,6 @@
 class TestOrderedSet(TestBase):
   mydir = TestBase.compute_mydir(__file__)
 
-  @skipUnlessDarwin
   def test_ordered_set(self):
     self.build()
     src_file = "main.m"
Index: lldb/test/API/lang/objc/objc_direct-methods/TestObjCDirectMethods.py
===================================================================
--- lldb/test/API/lang/objc/objc_direct-methods/TestObjCDirectMethods.py
+++ lldb/test/API/lang/objc/objc_direct-methods/TestObjCDirectMethods.py
@@ -1,5 +1,4 @@
 from lldbsuite.test import lldbinline
-from lldbsuite.test import decorators
 
 lldbinline.MakeInlineTest(
-    __file__, globals(), [decorators.skipUnlessDarwin])
+    __file__, globals(), [])
Index: lldb/test/API/lang/objc/objc-super/TestObjCSuper.py
===================================================================
--- lldb/test/API/lang/objc/objc-super/TestObjCSuper.py
+++ lldb/test/API/lang/objc/objc-super/TestObjCSuper.py
@@ -20,7 +20,6 @@
         self.break_line = line_number(
             self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     def test_with_python_api(self):
         """Test calling methods on super."""
Index: lldb/test/API/lang/objc/objc-struct-return/TestObjCStructReturn.py
===================================================================
--- lldb/test/API/lang/objc/objc-struct-return/TestObjCStructReturn.py
+++ lldb/test/API/lang/objc/objc-struct-return/TestObjCStructReturn.py
@@ -20,7 +20,6 @@
         self.break_line = line_number(
             self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     def test_with_python_api(self):
         """Test calling functions in class methods."""
Index: lldb/test/API/lang/objc/objc-struct-argument/TestObjCStructArgument.py
===================================================================
--- lldb/test/API/lang/objc/objc-struct-argument/TestObjCStructArgument.py
+++ lldb/test/API/lang/objc/objc-struct-argument/TestObjCStructArgument.py
@@ -20,7 +20,6 @@
         self.break_line = line_number(
             self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     @skipIf(debug_info=no_match(["gmodules"]), oslist=['ios', 'watchos', 'tvos', 'bridgeos'], archs=['armv7', 'arm64'])  # this test program only builds for ios with -gmodules
     def test_with_python_api(self):
Index: lldb/test/API/lang/objc/objc-stepping/TestObjCStepping.py
===================================================================
--- lldb/test/API/lang/objc/objc-stepping/TestObjCStepping.py
+++ lldb/test/API/lang/objc/objc-stepping/TestObjCStepping.py
@@ -29,7 +29,6 @@
         self.stepped_past_nil_line = line_number(
             self.main_source, '// Step over nil should stop here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi', 'basic_process'])
     def test_with_python_api(self):
         """Test stepping through ObjC method dispatch in various forms."""
Index: lldb/test/API/lang/objc/objc-static-method/TestObjCStaticMethod.py
===================================================================
--- lldb/test/API/lang/objc/objc-static-method/TestObjCStaticMethod.py
+++ lldb/test/API/lang/objc/objc-static-method/TestObjCStaticMethod.py
@@ -20,7 +20,6 @@
         self.break_line = line_number(
             self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     #<rdar://problem/9745789> "expression" can't call functions in class methods
     def test_with_python_api(self):
Index: lldb/test/API/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
===================================================================
--- lldb/test/API/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
+++ lldb/test/API/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
@@ -20,7 +20,6 @@
         self.break_line = line_number(
             self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     @skipIf(
         debug_info=no_match("dsym"),
Index: lldb/test/API/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py
===================================================================
--- lldb/test/API/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py
+++ lldb/test/API/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py
@@ -3,5 +3,4 @@
 
 lldbinline.MakeInlineTest(
     __file__, globals(), [
-        decorators.skipUnlessDarwin,
         decorators.skipIf(archs=["i386", "i686"])])
Index: lldb/test/API/lang/objc/objc-property/TestObjCProperty.py
===================================================================
--- lldb/test/API/lang/objc/objc-property/TestObjCProperty.py
+++ lldb/test/API/lang/objc/objc-property/TestObjCProperty.py
@@ -21,7 +21,6 @@
         # Find the line number to break for main.c.
         self.source_name = 'main.m'
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     def test_objc_properties(self):
         """Test that expr uses the correct property getters and setters"""
Index: lldb/test/API/lang/objc/objc-optimized/TestObjcOptimized.py
===================================================================
--- lldb/test/API/lang/objc/objc-optimized/TestObjcOptimized.py
+++ lldb/test/API/lang/objc/objc-optimized/TestObjcOptimized.py
@@ -19,7 +19,6 @@
 # test failure: objc_optimized does not work for "-C clang -A i386"
 
 
-@skipUnlessDarwin
 class ObjcOptimizedTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxLiteral.py
===================================================================
--- lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxLiteral.py
+++ lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxLiteral.py
@@ -11,7 +11,6 @@
 
 class ObjCNewSyntaxTestCaseLiteral(ObjCNewSyntaxTest):
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_char_literal(self):
@@ -20,7 +19,6 @@
         self.expect("expr --object-description -- @'a'",
                     VARIABLES_DISPLAYED_CORRECTLY, substrs=[str(ord('a'))])
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_integer_literals(self):
@@ -51,7 +49,6 @@
             VARIABLES_DISPLAYED_CORRECTLY,
             substrs=["1"])
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_float_literal(self):
@@ -60,7 +57,6 @@
         self.expect("expr -- @123.45", VARIABLES_DISPLAYED_CORRECTLY,
                     substrs=["NSNumber", "123.45"])
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_expressions_in_literals(self):
Index: lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxDictionary.py
===================================================================
--- lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxDictionary.py
+++ lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxDictionary.py
@@ -11,7 +11,6 @@
 
 class ObjCNewSyntaxTestCaseDictionary(ObjCNewSyntaxTest):
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_read_dictionary(self):
@@ -27,7 +26,6 @@
             VARIABLES_DISPLAYED_CORRECTLY,
             substrs=["value"])
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_update_dictionary(self):
@@ -43,7 +41,6 @@
             VARIABLES_DISPLAYED_CORRECTLY,
             substrs=["object"])
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_dictionary_literal(self):
Index: lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxArray.py
===================================================================
--- lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxArray.py
+++ lldb/test/API/lang/objc/objc-new-syntax/TestObjCNewSyntaxArray.py
@@ -11,7 +11,6 @@
 
 class ObjCNewSyntaxTestCaseArray(ObjCNewSyntaxTest):
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_read_array(self):
@@ -27,7 +26,6 @@
             VARIABLES_DISPLAYED_CORRECTLY,
             substrs=["foo"])
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_update_array(self):
@@ -43,7 +41,6 @@
             VARIABLES_DISPLAYED_CORRECTLY,
             substrs=["bar"])
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @expectedFailureAll(archs=["i[3-6]86"])
     def test_array_literal(self):
Index: lldb/test/API/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
===================================================================
--- lldb/test/API/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
+++ lldb/test/API/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
@@ -20,7 +20,6 @@
         self.stop_line = line_number(
             self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @skipIf(
         debug_info=no_match("dsym"),
         bugnumber="This test requires a stripped binary and a dSYM")
Index: lldb/test/API/lang/objc/objc-ivar-protocols/TestIvarProtocols.py
===================================================================
--- lldb/test/API/lang/objc/objc-ivar-protocols/TestIvarProtocols.py
+++ lldb/test/API/lang/objc/objc-ivar-protocols/TestIvarProtocols.py
@@ -1,5 +1,3 @@
 from lldbsuite.test import lldbinline
-from lldbsuite.test import decorators
 
-lldbinline.MakeInlineTest(
-    __file__, globals(), [decorators.skipUnlessDarwin])
+lldbinline.MakeInlineTest(__file__, globals(), [])
Index: lldb/test/API/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
===================================================================
--- lldb/test/API/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
+++ lldb/test/API/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
@@ -20,7 +20,6 @@
         self.stop_line = line_number(
             self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     def test_with_python_api(self):
         """Test printing ObjC objects that use unbacked properties"""
Index: lldb/test/API/lang/objc/objc-foundation-dictionary-empty/TestNSDictionary0.py
===================================================================
--- lldb/test/API/lang/objc/objc-foundation-dictionary-empty/TestNSDictionary0.py
+++ lldb/test/API/lang/objc/objc-foundation-dictionary-empty/TestNSDictionary0.py
@@ -1,5 +1,3 @@
 from lldbsuite.test import lldbinline
-from lldbsuite.test import decorators
 
-lldbinline.MakeInlineTest(
-    __file__, globals(), [decorators.skipUnlessDarwin])
+lldbinline.MakeInlineTest(__file__, globals(), [])
Index: lldb/test/API/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
===================================================================
--- lldb/test/API/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
+++ lldb/test/API/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
@@ -29,7 +29,6 @@
         self.main_before_setProperty_line = line_number(
             self.source_name, '// Break here to see if we can step into real method.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     @expectedFailureDarwin("llvm.org/pr20271 rdar://18684107")
     def test_get_objc_dynamic_vals(self):
Index: lldb/test/API/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
===================================================================
--- lldb/test/API/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
+++ lldb/test/API/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class ObjCDynamicSBTypeTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/objc-class-method/TestObjCClassMethod.py
===================================================================
--- lldb/test/API/lang/objc/objc-class-method/TestObjCClassMethod.py
+++ lldb/test/API/lang/objc/objc-class-method/TestObjCClassMethod.py
@@ -21,7 +21,6 @@
         self.break_line = line_number(
             self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     def test_with_python_api(self):
         """Test calling functions in class methods."""
Index: lldb/test/API/lang/objc/objc-checker/TestObjCCheckers.py
===================================================================
--- lldb/test/API/lang/objc/objc-checker/TestObjCCheckers.py
+++ lldb/test/API/lang/objc/objc-checker/TestObjCCheckers.py
@@ -23,7 +23,6 @@
         # Find the line number to break for main.c.
         self.source_name = 'main.m'
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     def test_objc_checker(self):
         """Test that checkers catch unrecognized selectors"""
Index: lldb/test/API/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
===================================================================
--- lldb/test/API/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
+++ lldb/test/API/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
@@ -20,7 +20,6 @@
         self.break_line = line_number(
             self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     #<rdar://problem/10591460> [regression] Can't print ivar value: error: reference to 'id' is ambiguous
     def test_with_python_api(self):
Index: lldb/test/API/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
===================================================================
--- lldb/test/API/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
+++ lldb/test/API/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
@@ -20,7 +20,6 @@
 
         self.line = line_number('main.m', '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     def test_get_baseclass(self):
         """Test fetching ObjC dynamic values."""
Index: lldb/test/API/lang/objc/objc++/TestObjCXX.py
===================================================================
--- lldb/test/API/lang/objc/objc++/TestObjCXX.py
+++ lldb/test/API/lang/objc/objc++/TestObjCXX.py
@@ -14,7 +14,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test_break(self):
         """Test ivars of Objective-C++ classes"""
         if self.getArchitecture() == 'i386':
Index: lldb/test/API/lang/objc/modules/TestObjCModules.py
===================================================================
--- lldb/test/API/lang/objc/modules/TestObjCModules.py
+++ lldb/test/API/lang/objc/modules/TestObjCModules.py
@@ -20,7 +20,6 @@
         # Find the line number to break inside main().
         self.line = line_number('main.m', '// Set breakpoint 0 here.')
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     @skipIfReproducer # FIXME: Unexpected packet during (active) replay
     def test_expr(self):
Index: lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py
===================================================================
--- lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py
+++ lldb/test/API/lang/objc/modules-update/TestClangModulesUpdate.py
@@ -12,7 +12,6 @@
 class TestClangModuleUpdate(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     @skipIf(debug_info=no_match(["gmodules"]))
     @skipIfReproducer # VFS is a snapshot.
     def test_expr(self):
Index: lldb/test/API/lang/objc/modules-non-objc-target/TestObjCModulesNonObjCTarget.py
===================================================================
--- lldb/test/API/lang/objc/modules-non-objc-target/TestObjCModulesNonObjCTarget.py
+++ lldb/test/API/lang/objc/modules-non-objc-target/TestObjCModulesNonObjCTarget.py
@@ -11,7 +11,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test(self):
         self.build()
         lldbutil.run_to_source_breakpoint(self,"// break here", lldb.SBFileSpec("main.c"))
Index: lldb/test/API/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
===================================================================
--- lldb/test/API/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
+++ lldb/test/API/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
@@ -15,7 +15,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"], debug_info=no_match(["gmodules"]))
     def test_expr(self):
         self.build()
Index: lldb/test/API/lang/objc/modules-incomplete/TestIncompleteModules.py
===================================================================
--- lldb/test/API/lang/objc/modules-incomplete/TestIncompleteModules.py
+++ lldb/test/API/lang/objc/modules-incomplete/TestIncompleteModules.py
@@ -19,7 +19,6 @@
         # Find the line number to break inside main().
         self.line = line_number('main.m', '// Set breakpoint 0 here.')
 
-    @skipUnlessDarwin
     @skipIf(debug_info=no_match(["gmodules"]))
     def test_expr(self):
         self.build()
Index: lldb/test/API/lang/objc/modules-hash-mismatch/TestClangModulesHashMismatch.py
===================================================================
--- lldb/test/API/lang/objc/modules-hash-mismatch/TestClangModulesHashMismatch.py
+++ lldb/test/API/lang/objc/modules-hash-mismatch/TestClangModulesHashMismatch.py
@@ -12,7 +12,6 @@
 class TestClangModuleHashMismatch(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     @skipIf(debug_info=no_match(["gmodules"]))
     def test_expr(self):
         with open(self.getBuildArtifact("module.modulemap"), "w") as f:
Index: lldb/test/API/lang/objc/modules-compile-error/TestModulesCompileError.py
===================================================================
--- lldb/test/API/lang/objc/modules-compile-error/TestModulesCompileError.py
+++ lldb/test/API/lang/objc/modules-compile-error/TestModulesCompileError.py
@@ -7,7 +7,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test(self):
         self.build()
         lldbutil.run_to_source_breakpoint(self, "// break here", lldb.SBFileSpec("main.m"))
Index: lldb/test/API/lang/objc/modules-cache/TestClangModulesCache.py
===================================================================
--- lldb/test/API/lang/objc/modules-cache/TestClangModulesCache.py
+++ lldb/test/API/lang/objc/modules-cache/TestClangModulesCache.py
@@ -16,7 +16,6 @@
     NO_DEBUG_INFO_TESTCASE = True
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test_expr(self):
         self.build()
         self.main_source_file = lldb.SBFileSpec("main.m")
Index: lldb/test/API/lang/objc/modules-auto-import/TestModulesAutoImport.py
===================================================================
--- lldb/test/API/lang/objc/modules-auto-import/TestModulesAutoImport.py
+++ lldb/test/API/lang/objc/modules-auto-import/TestModulesAutoImport.py
@@ -20,7 +20,6 @@
         # Find the line number to break inside main().
         self.line = line_number('main.m', '// Set breakpoint 0 here.')
 
-    @skipUnlessDarwin
     @skipIf(macos_version=["<", "10.12"])
     def test_expr(self):
         self.build()
Index: lldb/test/API/lang/objc/modules-app-update/TestClangModulesAppUpdate.py
===================================================================
--- lldb/test/API/lang/objc/modules-app-update/TestClangModulesAppUpdate.py
+++ lldb/test/API/lang/objc/modules-app-update/TestClangModulesAppUpdate.py
@@ -12,7 +12,6 @@
 class TestClangModuleAppUpdate(TestBase):
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     @skipIf(debug_info=no_match(["gmodules"]))
     def test_rebuild_app_modules_untouched(self):
         with open(self.getBuildArtifact("module.modulemap"), "w") as f:
Index: lldb/test/API/lang/objc/ivar-IMP/TestObjCiVarIMP.py
===================================================================
--- lldb/test/API/lang/objc/ivar-IMP/TestObjCiVarIMP.py
+++ lldb/test/API/lang/objc/ivar-IMP/TestObjCiVarIMP.py
@@ -15,7 +15,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     @skipIf(archs=['i386'])  # objc file does not build for i386
     @no_debug_info_test
     def test_imp_ivar_type(self):
Index: lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
===================================================================
--- lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
+++ lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
@@ -26,7 +26,6 @@
         # localized
         self.shlib_names = ["InternalDefiner"]
 
-    @skipUnlessDarwin
     @skipIf(
         debug_info=no_match("dsym"),
         bugnumber="This test requires a stripped binary and a dSYM")
@@ -38,7 +37,6 @@
             self.build()
             self.expr(True)
 
-    @skipUnlessDarwin
     @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def test_expr(self):
         if self.getArchitecture() == 'i386':
@@ -47,7 +45,6 @@
             self.build()
             self.expr(False)
 
-    @skipUnlessDarwin
     @skipIf(
         debug_info=no_match("dsym"),
         bugnumber="This test requires a stripped binary and a dSYM")
@@ -58,7 +55,6 @@
             self.build()
             self.frame_var(True)
 
-    @skipUnlessDarwin
     def test_frame_variable(self):
         if self.getArchitecture() == 'i386':
             self.skipTest("requires modern objc runtime")
@@ -67,7 +63,6 @@
             self.frame_var(False)
 
     @expectedFailure("rdar://18683637")
-    @skipUnlessDarwin
     def test_frame_variable_across_modules(self):
         if self.getArchitecture() == 'i386':
             self.skipTest("requires modern objc runtime")
Index: lldb/test/API/lang/objc/global_ptrs/TestGlobalObjects.py
===================================================================
--- lldb/test/API/lang/objc/global_ptrs/TestGlobalObjects.py
+++ lldb/test/API/lang/objc/global_ptrs/TestGlobalObjects.py
@@ -17,7 +17,6 @@
         TestBase.setUp(self)
         self.main_source = lldb.SBFileSpec("main.m")
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     def test_with_python_api(self):
         """Test that a global ObjC object found before the process is started updates correctly."""
Index: lldb/test/API/lang/objc/foundation/TestSymbolTable.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestSymbolTable.py
+++ lldb/test/API/lang/objc/foundation/TestSymbolTable.py
@@ -8,7 +8,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class FoundationSymtabTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
+++ lldb/test/API/lang/objc/foundation/TestRuntimeTypes.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class RuntimeTypesTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/foundation/TestObjectDescriptionAPI.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestObjectDescriptionAPI.py
+++ lldb/test/API/lang/objc/foundation/TestObjectDescriptionAPI.py
@@ -24,7 +24,6 @@
             self.source, '// Set break point at this line.')
 
     # rdar://problem/10857337
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     def test_find_global_variables_then_object_description(self):
         """Exercise SBTarget.FindGlobalVariables() API."""
Index: lldb/test/API/lang/objc/foundation/TestObjCMethodsString.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestObjCMethodsString.py
+++ lldb/test/API/lang/objc/foundation/TestObjCMethodsString.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class FoundationTestCaseString(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/foundation/TestObjCMethodsNSError.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestObjCMethodsNSError.py
+++ lldb/test/API/lang/objc/foundation/TestObjCMethodsNSError.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class FoundationTestCaseNSError(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/foundation/TestObjCMethodsNSArray.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestObjCMethodsNSArray.py
+++ lldb/test/API/lang/objc/foundation/TestObjCMethodsNSArray.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class FoundationTestCaseNSArray(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/foundation/TestObjCMethods2.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestObjCMethods2.py
+++ lldb/test/API/lang/objc/foundation/TestObjCMethods2.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class FoundationTestCase2(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/foundation/TestObjCMethods.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestObjCMethods.py
+++ lldb/test/API/lang/objc/foundation/TestObjCMethods.py
@@ -16,7 +16,6 @@
 file_index = 0
 
 
-@skipUnlessDarwin
 class FoundationTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/foundation/TestFoundationDisassembly.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestFoundationDisassembly.py
+++ lldb/test/API/lang/objc/foundation/TestFoundationDisassembly.py
@@ -10,7 +10,6 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class FoundationDisassembleTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
Index: lldb/test/API/lang/objc/foundation/TestConstStrings.py
===================================================================
--- lldb/test/API/lang/objc/foundation/TestConstStrings.py
+++ lldb/test/API/lang/objc/foundation/TestConstStrings.py
@@ -23,7 +23,6 @@
         self.main_source = "const-strings.m"
         self.line = line_number(self.main_source, '// Set breakpoint here.')
 
-    @skipUnlessDarwin
     def test_break(self):
         """Test constant string generation amd comparison by the expression parser."""
         self.build(dictionary=self.d)
Index: lldb/test/API/lang/objc/forward-decl/TestForwardDecl.py
===================================================================
--- lldb/test/API/lang/objc/forward-decl/TestForwardDecl.py
+++ lldb/test/API/lang/objc/forward-decl/TestForwardDecl.py
@@ -54,12 +54,10 @@
         self.expect("expression [j getMember]", VARIABLES_DISPLAYED_CORRECTLY,
                     substrs=["= 0x"])
 
-    @skipUnlessDarwin
     def test_expr(self):
         self.do_test()
 
     @no_debug_info_test
-    @skipUnlessDarwin
     @skipIf(compiler=no_match("clang"))
     @skipIf(compiler_version=["<", "7.0"])
     def test_debug_names(self):
Index: lldb/test/API/lang/objc/exceptions/TestObjCExceptions.py
===================================================================
--- lldb/test/API/lang/objc/exceptions/TestObjCExceptions.py
+++ lldb/test/API/lang/objc/exceptions/TestObjCExceptions.py
@@ -15,7 +15,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test_objc_exceptions_at_throw(self):
         self.build()
 
@@ -126,7 +125,6 @@
         for n in ["objc_exception_throw", "foo(int)", "main"]:
             self.assertTrue(n in names, "%s is in the exception backtrace (%s)" % (n, names))
 
-    @skipUnlessDarwin
     def test_objc_exceptions_at_abort(self):
         self.build()
 
@@ -183,7 +181,6 @@
         for n in ["objc_exception_throw", "foo(int)", "rethrow(int)", "main"]:
             self.assertEqual(len([f for f in history_thread.frames if f.GetFunctionName() == n]), 1)
 
-    @skipUnlessDarwin
     def test_cxx_exceptions_at_abort(self):
         self.build()
 
Index: lldb/test/API/lang/objc/direct-dispatch-step/TestObjCDirectDispatchStepping.py
===================================================================
--- lldb/test/API/lang/objc/direct-dispatch-step/TestObjCDirectDispatchStepping.py
+++ lldb/test/API/lang/objc/direct-dispatch-step/TestObjCDirectDispatchStepping.py
@@ -20,7 +20,6 @@
         # Find the line numbers that we will step to in main:
         self.main_source = lldb.SBFileSpec("stepping-tests.m")
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi', 'basic_process'])
     def test_with_python_api(self):
         """Test stepping through the 'direct dispatch' optimized method calls."""
Index: lldb/test/API/lang/objc/conflicting-definition/TestConflictingDefinition.py
===================================================================
--- lldb/test/API/lang/objc/conflicting-definition/TestConflictingDefinition.py
+++ lldb/test/API/lang/objc/conflicting-definition/TestConflictingDefinition.py
@@ -12,7 +12,6 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     def test_frame_var_after_stop_at_implementation(self):
         """Test that we can find the implementation for an objective C type"""
         if self.getArchitecture() == 'i386':
Index: lldb/test/API/lang/objc/blocks/TestObjCIvarsInBlocks.py
===================================================================
--- lldb/test/API/lang/objc/blocks/TestObjCIvarsInBlocks.py
+++ lldb/test/API/lang/objc/blocks/TestObjCIvarsInBlocks.py
@@ -18,7 +18,6 @@
         self.class_source = "ivars-in-blocks.m"
         self.class_source_file_spec = lldb.SBFileSpec(self.class_source)
 
-    @skipUnlessDarwin
     @add_test_categories(['pyapi'])
     @skipIf(dwarf_version=['<', '4'])
     @expectedFailureAll(
Index: lldb/test/API/lang/objc/bitfield_ivars/TestBitfieldIvars.py
===================================================================
--- lldb/test/API/lang/objc/bitfield_ivars/TestBitfieldIvars.py
+++ lldb/test/API/lang/objc/bitfield_ivars/TestBitfieldIvars.py
@@ -8,7 +8,6 @@
     mydir = TestBase.compute_mydir(__file__)
 
 
-    @skipUnlessDarwin
     def test(self):
         self.build()
         lldbutil.run_to_source_breakpoint(self, "// break here", lldb.SBFileSpec("main.m"))
Index: lldb/test/API/functionalities/tsan/multiple/TestTsanMultiple.py
===================================================================
--- lldb/test/API/functionalities/tsan/multiple/TestTsanMultiple.py
+++ lldb/test/API/functionalities/tsan/multiple/TestTsanMultiple.py
@@ -20,6 +20,7 @@
     @skipIfFreeBSD  # llvm.org/pr21136 runtimes not yet available by default
     @skipIfRemote
     @skipUnlessThreadSanitizer
+    @add_test_categories(["objc"])
     def test(self):
         self.build()
         self.tsan_tests()
Index: lldb/test/API/functionalities/set-data/TestSetData.py
===================================================================
--- lldb/test/API/functionalities/set-data/TestSetData.py
+++ lldb/test/API/functionalities/set-data/TestSetData.py
@@ -14,7 +14,7 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
+    @add_test_categories(["objc"])
     def test_set_data(self):
         """Test setting the contents of variables and registers using raw data."""
         self.build()
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterNSException(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_nsexception_with_run_command(self):
         """Test formatters for NSException."""
         self.appkit_tester_impl(self.nsexception_data_formatter_commands)
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCPlain.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCPlain.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCPlain.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterNSPlain(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_plain_objc_with_run_command(self):
         """Test basic ObjC formatting behavior."""
         self.build()
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterNSURL(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_nsurl_with_run_command(self):
         """Test formatters for NSURL."""
         self.appkit_tester_impl(self.nsurl_data_formatter_commands)
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterNSError(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_nserror_with_run_command(self):
         """Test formatters for NSError."""
         self.appkit_tester_impl(self.nserror_data_formatter_commands)
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
@@ -15,7 +15,6 @@
 
 class ObjCDataFormatterNSDate(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_nsdate_with_run_command(self):
         """Test formatters for  NSDate."""
         self.appkit_tester_impl(self.nsdate_data_formatter_commands)
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterNSData(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_nsdata_with_run_command(self):
         """Test formatters for  NSData."""
         self.appkit_tester_impl(self.nsdata_data_formatter_commands)
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterNSContainer(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_nscontainers_with_run_command(self):
         """Test formatters for  NS container classes."""
         self.appkit_tester_impl(self.nscontainers_data_formatter_commands)
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterNSBundle(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_nsbundle_with_run_command(self):
         """Test formatters for NSBundle."""
         self.appkit_tester_impl(self.nsbundle_data_formatter_commands)
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCKVO.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCKVO.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCKVO.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterKVO(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_kvo_with_run_command(self):
         """Test the behavior of formatters when KVO is in use."""
         self.build()
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCExpr.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCExpr.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCExpr.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterExpr(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_expr_with_run_command(self):
         """Test common cases of expression parser <--> formatters interaction."""
         self.build()
Index: lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py
===================================================================
--- lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py
+++ lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py
@@ -14,7 +14,6 @@
 
 class ObjCDataFormatterCF(ObjCDataFormatterTestCase):
 
-    @skipUnlessDarwin
     def test_coreframeworks_and_run_command(self):
         """Test formatters for Core OSX frameworks."""
         self.build()
Index: lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py
===================================================================
--- lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py
+++ lldb/test/API/functionalities/breakpoint/objc/TestObjCBreakpoints.py
@@ -13,11 +13,11 @@
 from lldbsuite.test import lldbutil
 
 
-@skipUnlessDarwin
 class TestObjCBreakpoints(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
+    @add_test_categories(["objc"])
     def test_break(self):
         """Test setting Objective-C specific breakpoints (DWARF in .o files)."""
         self.build()
Index: lldb/test/API/commands/frame/recognizer/.categories
===================================================================
--- /dev/null
+++ lldb/test/API/commands/frame/recognizer/.categories
@@ -0,0 +1 @@
+objc
Index: lldb/test/API/commands/expression/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
===================================================================
--- lldb/test/API/commands/expression/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
+++ lldb/test/API/commands/expression/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
@@ -23,7 +23,7 @@
         self.line = line_number(
             'main.m', "// Set breakpoint here, then do 'expr (NSArray*)array_token'.")
 
-    @skipUnlessDarwin
+    @add_test_categories(["objc"])
     def test(self):
         """The expression parser's type search should be wider than the current compilation unit."""
         self.build()
Index: lldb/test/API/commands/expression/po_verbosity/TestPoVerbosity.py
===================================================================
--- lldb/test/API/commands/expression/po_verbosity/TestPoVerbosity.py
+++ lldb/test/API/commands/expression/po_verbosity/TestPoVerbosity.py
@@ -21,7 +21,7 @@
         self.line = line_number('main.m',
                                 '// Stop here')
 
-    @skipUnlessDarwin
+    @add_test_categories(["objc"])
     def test(self):
         """Test that the po command acts correctly."""
         self.build()
Index: lldb/test/API/commands/expression/persist_objc_pointeetype/TestPersistObjCPointeeType.py
===================================================================
--- lldb/test/API/commands/expression/persist_objc_pointeetype/TestPersistObjCPointeeType.py
+++ lldb/test/API/commands/expression/persist_objc_pointeetype/TestPersistObjCPointeeType.py
@@ -20,9 +20,9 @@
         # Find the line number to break for main.cpp.
         self.line = line_number('main.m', '// break here')
 
-    @skipUnlessDarwin
     @skipIf(archs=["i386", "i686"])
     @skipIf(debug_info="gmodules", archs=['arm64', 'armv7', 'armv7k', 'arm64e', 'arm64_32'])  # compile error with gmodules for iOS
+    @add_test_categories(["objc"])
     def test_with(self):
         """Test that we can p *objcObject"""
         self.build()
Index: lldb/test/API/commands/expression/namespace_local_var_same_name_obj_c/TestNamespaceLocalVarSameNameObjC.py
===================================================================
--- lldb/test/API/commands/expression/namespace_local_var_same_name_obj_c/TestNamespaceLocalVarSameNameObjC.py
+++ lldb/test/API/commands/expression/namespace_local_var_same_name_obj_c/TestNamespaceLocalVarSameNameObjC.py
@@ -7,8 +7,7 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
-    @add_test_categories(["gmodules"])
+    @add_test_categories(["gmodules", "objc"])
     def test_namespace_local_var_same_name_obj_c(self):
         self.build()
 
Index: lldb/test/API/commands/expression/import_builtin_fileid/TestImportBuiltinFileID.py
===================================================================
--- lldb/test/API/commands/expression/import_builtin_fileid/TestImportBuiltinFileID.py
+++ lldb/test/API/commands/expression/import_builtin_fileid/TestImportBuiltinFileID.py
@@ -14,9 +14,8 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
     @skipIfDarwinEmbedded
-    @add_test_categories(["gmodules"])
+    @add_test_categories(["gmodules", "objc"])
     def test_import_builtin_fileid(self):
         self.build()
 
Index: lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py
===================================================================
--- lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py
+++ lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py
@@ -88,7 +88,7 @@
         self.assertFalse(value.GetError().Success())
         self.assertIn("error: <user expression 9>:1:8: redefinition of 'Redef'\nstruct Redef { float y; };\n       ^\n<user expression 8>:1:8: previous definition is here\nstruct Redef { double x; };\n       ^", value.GetError().GetCString())
 
-    @skipUnlessDarwin
+    @add_test_categories(["objc"])
     def test_source_locations_from_objc_modules(self):
         self.build()
 
Index: lldb/test/API/commands/expression/context-object-objc/TestContextObjectObjc.py
===================================================================
--- lldb/test/API/commands/expression/context-object-objc/TestContextObjectObjc.py
+++ lldb/test/API/commands/expression/context-object-objc/TestContextObjectObjc.py
@@ -11,7 +11,7 @@
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @skipUnlessDarwin
+    @add_test_categories(["objc"])
     def test_context_object_objc(self):
         """Tests expression evaluation in context of an objc class."""
         self.build()
Index: lldb/test/API/commands/expression/call-throws/TestCallThatThrows.py
===================================================================
--- lldb/test/API/commands/expression/call-throws/TestCallThatThrows.py
+++ lldb/test/API/commands/expression/call-throws/TestCallThatThrows.py
@@ -21,7 +21,7 @@
         self.main_source = "call-throws.m"
         self.main_source_spec = lldb.SBFileSpec(self.main_source)
 
-    @skipUnlessDarwin
+    @add_test_categories(["objc"])
     def test(self):
         """Test calling a function that throws and ObjC exception."""
         self.build()
Index: lldb/packages/Python/lldbsuite/test/dotest.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/dotest.py
+++ lldb/packages/Python/lldbsuite/test/dotest.py
@@ -835,6 +835,13 @@
     print("watchpoint tests will not be run because: " + reason)
     configuration.skip_categories.append("watchpoint")
 
+def checkObjcSupport():
+    from lldbsuite.test import lldbplatformutil
+
+    if not lldbplatformutil.platformIsDarwin():
+        print("objc tests will be skipped because of unsupported platform")
+        configuration.skip_categories.append("objc")
+
 def checkDebugInfoSupport():
     import lldb
 
@@ -945,6 +952,7 @@
     checkLibstdcxxSupport()
     checkWatchpointSupport()
     checkDebugInfoSupport()
+    checkObjcSupport()
 
     # Perform LLGS tests only on platforms using it.
     configuration.llgs_platform = (
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to