[Lldb-commits] [lldb] 05d7d69 - [lldb/tests] Removed add_test_categories decorator for python API tests, NFC

Tatyana Krasnukha via lldb-commits lldb-commits at lists.llvm.org
Mon Feb 8 04:13:08 PST 2021


Author: Tatyana Krasnukha
Date: 2021-02-08T15:10:48+03:00
New Revision: 05d7d6949c7cd3f1566d4c8394fa59160a7ffd05

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

LOG: [lldb/tests] Removed add_test_categories decorator for python API tests, NFC

There is a .categories file in the python_api directory that makes all nested tests
belong to the category "pyapi". The decorator is unnecessary for these tests.

Added: 
    

Modified: 
    lldb/test/API/python_api/breakpoint/TestBreakpointAPI.py
    lldb/test/API/python_api/class_members/TestSBTypeClassMembers.py
    lldb/test/API/python_api/debugger/TestDebuggerAPI.py
    lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
    lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py
    lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
    lldb/test/API/python_api/event/TestEvents.py
    lldb/test/API/python_api/file_handle/TestFileHandle.py
    lldb/test/API/python_api/findvalue_duplist/TestSBFrameFindValue.py
    lldb/test/API/python_api/formatters/TestFormattersSBAPI.py
    lldb/test/API/python_api/frame/TestFrames.py
    lldb/test/API/python_api/frame/inlines/TestInlinedFrame.py
    lldb/test/API/python_api/function_symbol/TestDisasmAPI.py
    lldb/test/API/python_api/function_symbol/TestSymbolAPI.py
    lldb/test/API/python_api/hello_world/TestHelloWorld.py
    lldb/test/API/python_api/interpreter/TestCommandInterpreterAPI.py
    lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py
    lldb/test/API/python_api/lldbutil/frame/TestFrameUtils.py
    lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py
    lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py
    lldb/test/API/python_api/lldbutil/process/TestPrintStackTraces.py
    lldb/test/API/python_api/module_section/TestModuleAndSection.py
    lldb/test/API/python_api/name_lookup/TestNameLookup.py
    lldb/test/API/python_api/process/TestProcessAPI.py
    lldb/test/API/python_api/process/io/TestProcessIO.py
    lldb/test/API/python_api/sbdata/TestSBData.py
    lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py
    lldb/test/API/python_api/sbplatform/TestSBPlatform.py
    lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py
    lldb/test/API/python_api/sbvalue_persist/TestSBValuePersist.py
    lldb/test/API/python_api/section/TestSectionAPI.py
    lldb/test/API/python_api/signals/TestSignalsAPI.py
    lldb/test/API/python_api/symbol-context/TestSymbolContext.py
    lldb/test/API/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py
    lldb/test/API/python_api/target/TestTargetAPI.py
    lldb/test/API/python_api/thread/TestThreadAPI.py
    lldb/test/API/python_api/type/TestTypeList.py
    lldb/test/API/python_api/value/TestValueAPI.py
    lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
    lldb/test/API/python_api/value/empty_class/TestValueAPIEmptyClass.py
    lldb/test/API/python_api/value/linked_list/TestValueAPILinkedList.py
    lldb/test/API/python_api/value_var_update/TestValueVarUpdate.py
    lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py
    lldb/test/API/python_api/watchpoint/TestWatchpointIgnoreCount.py
    lldb/test/API/python_api/watchpoint/TestWatchpointIter.py
    lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
    lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py

Removed: 
    


################################################################################
diff  --git a/lldb/test/API/python_api/breakpoint/TestBreakpointAPI.py b/lldb/test/API/python_api/breakpoint/TestBreakpointAPI.py
index 80324ee61b70..bd02b7663f07 100644
--- a/lldb/test/API/python_api/breakpoint/TestBreakpointAPI.py
+++ b/lldb/test/API/python_api/breakpoint/TestBreakpointAPI.py
@@ -13,7 +13,6 @@ class BreakpointAPITestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
-    @add_test_categories(['pyapi'])
     def test_breakpoint_is_valid(self):
         """Make sure that if an SBBreakpoint gets deleted its IsValid returns false."""
         self.build()
@@ -45,7 +44,6 @@ def test_breakpoint_is_valid(self):
             not breakpoint,
             "Breakpoint we deleted is no longer valid.")
 
-    @add_test_categories(['pyapi'])
     def test_target_delete(self):
         """Make sure that if an SBTarget gets deleted the associated
         Breakpoint's IsValid returns false."""

diff  --git a/lldb/test/API/python_api/class_members/TestSBTypeClassMembers.py b/lldb/test/API/python_api/class_members/TestSBTypeClassMembers.py
index 091bb1bc5acc..061556ac0552 100644
--- a/lldb/test/API/python_api/class_members/TestSBTypeClassMembers.py
+++ b/lldb/test/API/python_api/class_members/TestSBTypeClassMembers.py
@@ -24,7 +24,6 @@ def setUp(self):
         self.line = line_number(self.source, '// set breakpoint here')
 
     @skipUnlessDarwin
-    @add_test_categories(['pyapi'])
     def test(self):
         """Test SBType APIs to fetch member function types."""
         d = {'EXE': self.exe_name}

diff  --git a/lldb/test/API/python_api/debugger/TestDebuggerAPI.py b/lldb/test/API/python_api/debugger/TestDebuggerAPI.py
index 15597146c5b4..f9fe64d3a4d0 100644
--- a/lldb/test/API/python_api/debugger/TestDebuggerAPI.py
+++ b/lldb/test/API/python_api/debugger/TestDebuggerAPI.py
@@ -14,7 +14,6 @@ class DebuggerAPITestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
-    @add_test_categories(['pyapi'])
     def test_debugger_api_boundary_condition(self):
         """Exercise SBDebugger APIs with boundary conditions."""
         self.dbg.HandleCommand(None)
@@ -37,7 +36,6 @@ def test_debugger_api_boundary_condition(self):
         fresh_dbg = lldb.SBDebugger()
         self.assertEquals(len(fresh_dbg), 0)
 
-    @add_test_categories(['pyapi'])
     def test_debugger_delete_invalid_target(self):
         """SBDebugger.DeleteTarget() should not crash LLDB given and invalid target."""
         target = lldb.SBTarget()

diff  --git a/lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py b/lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
index 65c4dac48490..d69e13f1009c 100644
--- a/lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
+++ b/lldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
@@ -25,7 +25,6 @@ class APIDefaultConstructorTestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
-    @add_test_categories(['pyapi'])
     def test_SBAddress(self):
         obj = lldb.SBAddress()
         if self.TraceOn():
@@ -35,7 +34,6 @@ def test_SBAddress(self):
         import sb_address
         sb_address.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBBlock(self):
         obj = lldb.SBBlock()
         if self.TraceOn():
@@ -45,7 +43,6 @@ def test_SBBlock(self):
         import sb_block
         sb_block.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBBreakpoint(self):
         obj = lldb.SBBreakpoint()
         if self.TraceOn():
@@ -55,7 +52,6 @@ def test_SBBreakpoint(self):
         import sb_breakpoint
         sb_breakpoint.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBBreakpointLocation(self):
         obj = lldb.SBBreakpointLocation()
         if self.TraceOn():
@@ -65,7 +61,6 @@ def test_SBBreakpointLocation(self):
         import sb_breakpointlocation
         sb_breakpointlocation.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBBreakpointName(self):
         obj = lldb.SBBreakpointName()
         if self.TraceOn():
@@ -75,7 +70,6 @@ def test_SBBreakpointName(self):
         import sb_breakpointname
         sb_breakpointname.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBBroadcaster(self):
         obj = lldb.SBBroadcaster()
         if self.TraceOn():
@@ -85,7 +79,6 @@ def test_SBBroadcaster(self):
         import sb_broadcaster
         sb_broadcaster.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBCommandReturnObject(self):
         """SBCommandReturnObject object is valid after default construction."""
         obj = lldb.SBCommandReturnObject()
@@ -93,7 +86,6 @@ def test_SBCommandReturnObject(self):
             print(obj)
         self.assertTrue(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBCommunication(self):
         obj = lldb.SBCommunication()
         if self.TraceOn():
@@ -103,7 +95,6 @@ def test_SBCommunication(self):
         import sb_communication
         sb_communication.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBCompileUnit(self):
         obj = lldb.SBCompileUnit()
         if self.TraceOn():
@@ -113,7 +104,6 @@ def test_SBCompileUnit(self):
         import sb_compileunit
         sb_compileunit.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_SBDebugger(self):
         obj = lldb.SBDebugger()
@@ -124,7 +114,6 @@ def test_SBDebugger(self):
         import sb_debugger
         sb_debugger.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     # darwin: This test passes with swig 3.0.2, fails w/3.0.5 other tests fail
     # with 2.0.12 http://llvm.org/pr23488
     def test_SBError(self):
@@ -136,7 +125,6 @@ def test_SBError(self):
         import sb_error
         sb_error.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBEvent(self):
         obj = lldb.SBEvent()
         # This is just to test that typemap, as defined in lldb.swig, works.
@@ -148,7 +136,6 @@ def test_SBEvent(self):
         import sb_event
         sb_event.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBFileSpec(self):
         obj = lldb.SBFileSpec()
         # This is just to test that FileSpec(None) does not crash.
@@ -160,7 +147,6 @@ def test_SBFileSpec(self):
         import sb_filespec
         sb_filespec.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBFrame(self):
         obj = lldb.SBFrame()
         if self.TraceOn():
@@ -170,7 +156,6 @@ def test_SBFrame(self):
         import sb_frame
         sb_frame.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBFunction(self):
         obj = lldb.SBFunction()
         if self.TraceOn():
@@ -180,7 +165,6 @@ def test_SBFunction(self):
         import sb_function
         sb_function.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_SBFile(self):
         sbf = lldb.SBFile()
@@ -194,7 +178,6 @@ def test_SBFile(self):
         self.assertEqual(n, 0)
         self.assertTrue(e.Fail())
 
-    @add_test_categories(['pyapi'])
     def test_SBInstruction(self):
         obj = lldb.SBInstruction()
         if self.TraceOn():
@@ -204,7 +187,6 @@ def test_SBInstruction(self):
         import sb_instruction
         sb_instruction.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBInstructionList(self):
         obj = lldb.SBInstructionList()
         if self.TraceOn():
@@ -214,7 +196,6 @@ def test_SBInstructionList(self):
         import sb_instructionlist
         sb_instructionlist.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBLineEntry(self):
         obj = lldb.SBLineEntry()
         if self.TraceOn():
@@ -224,7 +205,6 @@ def test_SBLineEntry(self):
         import sb_lineentry
         sb_lineentry.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBListener(self):
         obj = lldb.SBListener()
         if self.TraceOn():
@@ -234,7 +214,6 @@ def test_SBListener(self):
         import sb_listener
         sb_listener.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     # Py3 asserts due to a bug in SWIG.  Trying to upstream a patch to fix
     # this in 3.0.8
     @skipIf(py_version=['>=', (3, 0)], swig_version=['<', (3, 0, 8)])
@@ -247,7 +226,6 @@ def test_SBModule(self):
         import sb_module
         sb_module.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBProcess(self):
         obj = lldb.SBProcess()
         if self.TraceOn():
@@ -257,7 +235,6 @@ def test_SBProcess(self):
         import sb_process
         sb_process.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBProcessInfo(self):
         obj = lldb.SBProcessInfo()
         if self.TraceOn():
@@ -267,7 +244,6 @@ def test_SBProcessInfo(self):
         import sb_process_info
         sb_process_info.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBSection(self):
         obj = lldb.SBSection()
         if self.TraceOn():
@@ -277,7 +253,6 @@ def test_SBSection(self):
         import sb_section
         sb_section.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBStream(self):
         """SBStream object is valid after default construction."""
         obj = lldb.SBStream()
@@ -285,7 +260,6 @@ def test_SBStream(self):
             print(obj)
         self.assertTrue(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBStringList(self):
         obj = lldb.SBStringList()
         if self.TraceOn():
@@ -295,7 +269,6 @@ def test_SBStringList(self):
         import sb_stringlist
         sb_stringlist.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBSymbol(self):
         obj = lldb.SBSymbol()
         if self.TraceOn():
@@ -305,7 +278,6 @@ def test_SBSymbol(self):
         import sb_symbol
         sb_symbol.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBSymbolContext(self):
         obj = lldb.SBSymbolContext()
         if self.TraceOn():
@@ -315,7 +287,6 @@ def test_SBSymbolContext(self):
         import sb_symbolcontext
         sb_symbolcontext.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBSymbolContextList(self):
         """SBSymbolContextList object is valid after default construction."""
         obj = lldb.SBSymbolContextList()
@@ -323,7 +294,6 @@ def test_SBSymbolContextList(self):
             print(obj)
         self.assertTrue(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBTarget(self):
         obj = lldb.SBTarget()
         if self.TraceOn():
@@ -333,7 +303,6 @@ def test_SBTarget(self):
         import sb_target
         sb_target.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBThread(self):
         obj = lldb.SBThread()
         if self.TraceOn():
@@ -343,7 +312,6 @@ def test_SBThread(self):
         import sb_thread
         sb_thread.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBType(self):
         try:
             obj = lldb.SBType()
@@ -361,7 +329,6 @@ def test_SBType(self):
         import sb_type
         sb_type.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBTypeList(self):
         """SBTypeList object is valid after default construction."""
         obj = lldb.SBTypeList()
@@ -369,7 +336,6 @@ def test_SBTypeList(self):
             print(obj)
         self.assertTrue(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBValue(self):
         obj = lldb.SBValue()
         if self.TraceOn():
@@ -379,7 +345,6 @@ def test_SBValue(self):
         import sb_value
         sb_value.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBValueList(self):
         obj = lldb.SBValueList()
         if self.TraceOn():
@@ -389,7 +354,6 @@ def test_SBValueList(self):
         import sb_valuelist
         sb_valuelist.fuzz_obj(obj)
 
-    @add_test_categories(['pyapi'])
     def test_SBWatchpoint(self):
         obj = lldb.SBWatchpoint()
         if self.TraceOn():

diff  --git a/lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py b/lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py
index 80b39d29c835..6be7d011df76 100644
--- a/lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py
+++ b/lldb/test/API/python_api/disassemble-raw-data/TestDisassembleRawData.py
@@ -16,7 +16,6 @@ class DisassembleRawDataTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     @no_debug_info_test
     @skipIfRemote
     @skipIfReproducer # GetInstructions is not instrumented.

diff  --git a/lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py b/lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
index 86c51a28e082..9260b720a83f 100644
--- a/lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
+++ b/lldb/test/API/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
@@ -17,7 +17,6 @@ class Disassemble_VST1_64(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     @no_debug_info_test
     @skipIfLLVMTargetMissing("ARM")
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.

diff  --git a/lldb/test/API/python_api/event/TestEvents.py b/lldb/test/API/python_api/event/TestEvents.py
index b53163b70862..95cf5b28c0ca 100644
--- a/lldb/test/API/python_api/event/TestEvents.py
+++ b/lldb/test/API/python_api/event/TestEvents.py
@@ -26,7 +26,6 @@ def setUp(self):
         self.line = line_number(
             'main.c', '// Find the line number of function "c" here.')
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(
         oslist=["linux"],
         bugnumber="llvm.org/pr23730 Flaky, fails ~1/10 cases")
@@ -119,7 +118,6 @@ def run(self):
 
         # Shouldn't we be testing against some kind of expectation here?
 
-    @add_test_categories(['pyapi'])
     @expectedFlakeyLinux("llvm.org/pr23730")  # Flaky, fails ~1/100 cases
     @skipIfWindows # This is flakey on Windows AND when it fails, it hangs: llvm.org/pr38373
     @skipIfNetBSD
@@ -197,7 +195,6 @@ def run(self):
         self.assertTrue(event,
                         "My listening thread successfully received an event")
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(
         oslist=["linux"],
         bugnumber="llvm.org/pr23617 Flaky, fails ~1/10 cases")

diff  --git a/lldb/test/API/python_api/file_handle/TestFileHandle.py b/lldb/test/API/python_api/file_handle/TestFileHandle.py
index bbcb1124b74a..286b3ee6d7ee 100644
--- a/lldb/test/API/python_api/file_handle/TestFileHandle.py
+++ b/lldb/test/API/python_api/file_handle/TestFileHandle.py
@@ -119,7 +119,6 @@ def handleCmd(self, cmd, check=True, collect_result=True):
         return ret.GetOutput()
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_out_script(self):
         with open(self.out_filename, 'w') as f:
@@ -135,7 +134,6 @@ def test_legacy_file_out_script(self):
             self.assertEqual(readStrippedLines(f), ['2', 'FOO'])
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_out(self):
         with open(self.out_filename, 'w') as f:
@@ -144,7 +142,6 @@ def test_legacy_file_out(self):
         with open(self.out_filename, 'r') as f:
             self.assertIn('deadbeef', f.read())
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_err_with_get(self):
         with open(self.out_filename, 'w') as f:
@@ -159,7 +156,6 @@ def test_legacy_file_err_with_get(self):
             self.assertTrue(re.search(r'FOOBAR', errors))
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_err(self):
         with open(self.out_filename, 'w') as f:
@@ -169,7 +165,6 @@ def test_legacy_file_err(self):
             self.assertIn("is not a valid command", f.read())
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_legacy_file_error(self):
         with open(self.out_filename, 'w') as f:
@@ -179,7 +174,6 @@ def test_legacy_file_error(self):
             errors = f.read()
             self.assertTrue(re.search(r'error:.*lolwut', errors))
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_type_errors(self):
         sbf = lldb.SBFile()
@@ -190,7 +184,6 @@ def test_sbfile_type_errors(self):
         self.assertRaises(Exception, sbf.Read, u"ham sandwich")
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_fileno(self):
         with open(self.out_filename, 'w') as f:
@@ -205,7 +198,6 @@ def test_sbfile_write_fileno(self):
             self.assertEqual(readStrippedLines(f), ['FOO', 'BAR'])
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write(self):
         with open(self.out_filename, 'w') as f:
@@ -219,7 +211,6 @@ def test_sbfile_write(self):
             self.assertEqual(f.read().strip(), 'FOO')
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read_fileno(self):
         with open(self.out_filename, 'w') as f:
@@ -233,7 +224,6 @@ def test_sbfile_read_fileno(self):
             self.assertEqual(buffer[:n], b'FOO')
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read(self):
         with open(self.out_filename, 'w') as f:
@@ -249,7 +239,6 @@ def test_sbfile_read(self):
             self.assertTrue(f.closed)
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_out(self):
         with open(self.out_filename, 'w') as f:
@@ -264,7 +253,6 @@ def test_fileno_out(self):
             self.assertEqual(readStrippedLines(f), ['3', 'quux'])
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_help(self):
         with open(self.out_filename, 'w') as f:
@@ -276,7 +264,6 @@ def test_fileno_help(self):
             self.assertTrue(re.search(r'Show a list of all debugger commands', f.read()))
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_help(self):
         with open(self.out_filename, 'w') as f:
@@ -287,7 +274,6 @@ def test_help(self):
             self.assertIn('Show a list of all debugger commands', f.read())
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_immediate(self):
         with open(self.out_filename, 'w') as f:
@@ -304,7 +290,6 @@ def test_immediate(self):
             self.assertTrue(re.search(r'QUUX', output))
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_immediate_string(self):
@@ -321,7 +306,6 @@ def test_immediate_string(self):
         self.assertTrue(re.search(r'QUUX', output))
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_immediate_sbfile_string(self):
@@ -337,7 +321,6 @@ def test_immediate_sbfile_string(self):
         self.assertTrue(re.search(r'Show a list of all debugger commands', output))
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_inout(self):
         with open(self.in_filename, 'w') as f:
@@ -361,7 +344,6 @@ def test_fileno_inout(self):
             self.assertTrue(re.search(r'Show a list of all debugger commands', f.read()))
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_inout(self):
         with open(self.in_filename, 'w') as f:
@@ -380,7 +362,6 @@ def test_inout(self):
             self.assertIn('Show a list of all debugger commands', output)
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_binary_inout(self):
         with open(self.in_filename, 'w') as f:
@@ -399,7 +380,6 @@ def test_binary_inout(self):
             self.assertIn('Show a list of all debugger commands', output)
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_string_inout(self):
@@ -417,7 +397,6 @@ def test_string_inout(self):
         self.assertIn('0xfff', output)
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_bytes_inout(self):
@@ -435,7 +414,6 @@ def test_bytes_inout(self):
         self.assertIn(b'Set a breakpoint', output)
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_error(self):
         with open(self.out_filename, 'w') as f:
@@ -454,7 +432,6 @@ def test_fileno_error(self):
             self.assertTrue(re.search(r'zork', errors))
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_replace_stdout(self):
         f = io.StringIO()
@@ -465,7 +442,6 @@ def test_replace_stdout(self):
             self.assertEqual(sys.stdout, f)
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_replace_stdout_with_nonfile(self):
         f = io.StringIO()
@@ -481,7 +457,6 @@ class Nothing():
         self.assertEqual(f.getvalue(), "FOO")
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_borrowed(self):
         with open(self.out_filename, 'w') as f:
@@ -497,7 +472,6 @@ def test_sbfile_write_borrowed(self):
 
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_forced(self):
@@ -519,7 +493,6 @@ def mywrite(x):
             self.assertEqual(f.read().strip(), 'FOO')
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_forced_borrowed(self):
@@ -541,7 +514,6 @@ def mywrite(x):
             self.assertEqual(f.read().strip(), 'FOO')
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_string(self):
@@ -555,7 +527,6 @@ def test_sbfile_write_string(self):
         self.assertTrue(f.closed)
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_string_out(self):
@@ -566,7 +537,6 @@ def test_string_out(self):
         self.assertEqual(f.getvalue().strip(), "'foobar'")
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_string_error(self):
@@ -578,7 +548,6 @@ def test_string_error(self):
         self.assertTrue(re.search(r'error:.*lolwut', errors))
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_write_bytes(self):
@@ -591,7 +560,6 @@ def test_sbfile_write_bytes(self):
         sbf.Close()
         self.assertTrue(f.closed)
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read_string(self):
@@ -603,7 +571,6 @@ def test_sbfile_read_string(self):
         self.assertEqual(buf[:n], b'zork')
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read_string_one_byte(self):
@@ -616,7 +583,6 @@ def test_sbfile_read_string_one_byte(self):
         self.assertEqual(e.GetCString(), "can't read less than 6 bytes from a utf8 text stream")
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_read_bytes(self):
@@ -628,7 +594,6 @@ def test_sbfile_read_bytes(self):
         self.assertEqual(buf[:n], b'zork')
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_out(self):
@@ -641,7 +606,6 @@ def test_sbfile_out(self):
             self.assertEqual(f.read().strip(), '4')
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_file_out(self):
@@ -653,7 +617,6 @@ def test_file_out(self):
             self.assertEqual(f.read().strip(), '4')
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbfile_error(self):
         with open(self.out_filename, 'w') as f:
@@ -666,7 +629,6 @@ def test_sbfile_error(self):
             self.assertTrue(re.search(r'error:.*lolwut', errors))
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_file_error(self):
         with open(self.out_filename, 'w') as f:
@@ -678,7 +640,6 @@ def test_file_error(self):
             self.assertTrue(re.search(r'error:.*lolwut', errors))
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_exceptions(self):
         self.assertRaises(Exception, lldb.SBFile, None)
@@ -697,7 +658,6 @@ def test_exceptions(self):
             self.assertIn('OH NOE', error.GetCString())
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_exceptions_logged(self):
@@ -709,7 +669,6 @@ def test_exceptions_logged(self):
         self.assertTrue(any('OH NOE' in msg for msg in messages))
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_flush(self):
@@ -740,7 +699,6 @@ def test_flush(self):
         self.assertFalse(f.closed)
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_fileno_flush(self):
         with open(self.out_filename, 'w') as f:
@@ -762,7 +720,6 @@ def test_fileno_flush(self):
             self.assertEqual(f.read(), 'foobar')
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_close(self):
         with open(self.out_filename, 'w') as f:
@@ -781,7 +738,6 @@ def test_close(self):
             self.assertTrue(re.search(r'ZAP', output))
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_stdout(self):
@@ -792,7 +748,6 @@ def test_stdout(self):
         self.assertEqual(f.getvalue().strip().split(), ["foobar", "7"])
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_stdout_file(self):
         with open(self.out_filename, 'w') as f:
@@ -808,7 +763,6 @@ def test_stdout_file(self):
             self.assertEqual(lines, ["foobar"])
 
 
-    @add_test_categories(['pyapi'])
     @skipIf(py_version=['<', (3,)])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_identity(self):
@@ -865,7 +819,6 @@ def test_identity(self):
             self.assertEqual("foobar", f.read().strip())
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_back_and_forth(self):
         with open(self.out_filename, 'w') as f:
@@ -885,7 +838,6 @@ def i(sbf):
             self.assertEqual(list(range(10)), list(map(int, f.read().strip().split())))
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_set_filehandle_none(self):
         self.assertRaises(Exception, self.dbg.SetOutputFile, None)
@@ -924,7 +876,6 @@ def test_set_filehandle_none(self):
                 self.assertEqual(sbf.GetFile().fileno(), 0)
 
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # lldb::FileSP used in typemap cannot be instrumented.
     def test_sbstream(self):
 

diff  --git a/lldb/test/API/python_api/findvalue_duplist/TestSBFrameFindValue.py b/lldb/test/API/python_api/findvalue_duplist/TestSBFrameFindValue.py
index 40420520cac3..727c11499b5d 100644
--- a/lldb/test/API/python_api/findvalue_duplist/TestSBFrameFindValue.py
+++ b/lldb/test/API/python_api/findvalue_duplist/TestSBFrameFindValue.py
@@ -13,7 +13,6 @@ class SBFrameFindValueTestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
-    @add_test_categories(['pyapi'])
     def test_formatters_api(self):
         """Test that SBFrame::FindValue finds things but does not duplicate the entire variables list"""
         self.build()

diff  --git a/lldb/test/API/python_api/formatters/TestFormattersSBAPI.py b/lldb/test/API/python_api/formatters/TestFormattersSBAPI.py
index 3f8329c2efe9..ac135b92e3b8 100644
--- a/lldb/test/API/python_api/formatters/TestFormattersSBAPI.py
+++ b/lldb/test/API/python_api/formatters/TestFormattersSBAPI.py
@@ -19,7 +19,6 @@ def setUp(self):
         TestBase.setUp(self)
         self.line = line_number('main.cpp', '// Set break point at this line.')
 
-    @add_test_categories(['pyapi'])
     def test_formatters_api(self):
         """Test Python APIs for working with formatters"""
         self.build()
@@ -436,7 +435,6 @@ def cleanup():
                 lldb.eLanguageTypeObjC) is not None,
             "ObjC category is None")
 
-    @add_test_categories(['pyapi'])
     def test_force_synth_off(self):
         """Test that one can have the public API return non-synthetic SBValues if desired"""
         self.build(dictionary={'EXE': 'no_synth'})

diff  --git a/lldb/test/API/python_api/frame/TestFrames.py b/lldb/test/API/python_api/frame/TestFrames.py
index c8a58ad43f0f..f02257a3056a 100644
--- a/lldb/test/API/python_api/frame/TestFrames.py
+++ b/lldb/test/API/python_api/frame/TestFrames.py
@@ -16,7 +16,6 @@ class FrameAPITestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     def test_get_arg_vals_for_call_stack(self):
         """Exercise SBFrame.GetVariables() API to get argument vals."""
         self.build()
@@ -120,7 +119,6 @@ def test_get_arg_vals_for_call_stack(self):
                     substrs=["a((int)val=1, (char)ch='A')",
                              "a((int)val=3, (char)ch='A')"])
 
-    @add_test_categories(['pyapi'])
     def test_frame_api_boundary_condition(self):
         """Exercise SBFrame APIs with boundary condition inputs."""
         self.build()
@@ -162,7 +160,6 @@ def test_frame_api_boundary_condition(self):
 
         frame.EvaluateExpression(None)
 
-    @add_test_categories(['pyapi'])
     def test_frame_api_IsEqual(self):
         """Exercise SBFrame API IsEqual."""
         self.build()

diff  --git a/lldb/test/API/python_api/frame/inlines/TestInlinedFrame.py b/lldb/test/API/python_api/frame/inlines/TestInlinedFrame.py
index 46b9b9f31911..aa8c9c378127 100644
--- a/lldb/test/API/python_api/frame/inlines/TestInlinedFrame.py
+++ b/lldb/test/API/python_api/frame/inlines/TestInlinedFrame.py
@@ -25,7 +25,6 @@ def setUp(self):
         self.second_stop = line_number(
             self.source, '// This should correspond to the second break stop.')
 
-    @add_test_categories(['pyapi'])
     def test_stop_at_outer_inline(self):
         """Exercise SBFrame.IsInlined() and SBFrame.GetFunctionName()."""
         self.build()

diff  --git a/lldb/test/API/python_api/function_symbol/TestDisasmAPI.py b/lldb/test/API/python_api/function_symbol/TestDisasmAPI.py
index d67798ebc70b..c884241f33d4 100644
--- a/lldb/test/API/python_api/function_symbol/TestDisasmAPI.py
+++ b/lldb/test/API/python_api/function_symbol/TestDisasmAPI.py
@@ -24,7 +24,6 @@ def setUp(self):
         self.line2 = line_number(
             'main.c', '// Find the line number for breakpoint 2 here.')
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(oslist=["windows"], bugnumber='llvm.org/pr21765')
     def test(self):
         """Exercise getting SBAddress objects, disassembly, and SBAddress APIs."""

diff  --git a/lldb/test/API/python_api/function_symbol/TestSymbolAPI.py b/lldb/test/API/python_api/function_symbol/TestSymbolAPI.py
index 09e7db7fcefc..14b01d557b61 100644
--- a/lldb/test/API/python_api/function_symbol/TestSymbolAPI.py
+++ b/lldb/test/API/python_api/function_symbol/TestSymbolAPI.py
@@ -24,7 +24,6 @@ def setUp(self):
         self.line2 = line_number(
             'main.c', '// Find the line number for breakpoint 2 here.')
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(oslist=["windows"], bugnumber='llvm.org/pr21765')
     def test(self):
         """Exercise some SBSymbol and SBAddress APIs."""

diff  --git a/lldb/test/API/python_api/hello_world/TestHelloWorld.py b/lldb/test/API/python_api/hello_world/TestHelloWorld.py
index ea8b9a7e081a..0f616f44a721 100644
--- a/lldb/test/API/python_api/hello_world/TestHelloWorld.py
+++ b/lldb/test/API/python_api/hello_world/TestHelloWorld.py
@@ -26,7 +26,6 @@ def tearDown(self):
         # Call super's tearDown().
         TestBase.tearDown(self)
 
-    @add_test_categories(['pyapi'])
     @skipIfiOSSimulator
     def test_with_process_launch_api(self):
         """Create target, breakpoint, launch a process, and then kill it."""
@@ -72,7 +71,6 @@ def test_with_process_launch_api(self):
         # The breakpoint should have a hit count of 1.
         self.assertEqual(breakpoint.GetHitCount(), 1, BREAKPOINT_HIT_ONCE)
 
-    @add_test_categories(['pyapi'])
     @skipIfiOSSimulator
     @skipIfReproducer # File synchronization is not supported during replay.
     def test_with_attach_to_process_with_id_api(self):
@@ -104,7 +102,6 @@ def test_with_attach_to_process_with_id_api(self):
                     substrs=['main.c:%d' % self.line2,
                              '(int)argc=2'])
 
-    @add_test_categories(['pyapi'])
     @skipIfiOSSimulator
     @skipIfAsan # FIXME: Hangs indefinitely.
     @skipIfReproducer # FIXME: Unexpected packet during (active) replay

diff  --git a/lldb/test/API/python_api/interpreter/TestCommandInterpreterAPI.py b/lldb/test/API/python_api/interpreter/TestCommandInterpreterAPI.py
index a920ce845b82..151d445aec82 100644
--- a/lldb/test/API/python_api/interpreter/TestCommandInterpreterAPI.py
+++ b/lldb/test/API/python_api/interpreter/TestCommandInterpreterAPI.py
@@ -20,7 +20,6 @@ def setUp(self):
         # Find the line number to break on inside main.cpp.
         self.line = line_number('main.c', 'Hello world.')
 
-    @add_test_categories(['pyapi'])
     def test_with_process_launch_api(self):
         """Test the SBCommandInterpreter APIs."""
         self.build()
@@ -74,7 +73,6 @@ def test_with_process_launch_api(self):
         if self.TraceOn():
             lldbutil.print_stacktraces(process)
 
-    @add_test_categories(['pyapi'])
     def test_command_output(self):
         """Test command output handling."""
         ci = self.dbg.GetCommandInterpreter()

diff  --git a/lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py b/lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py
index 9f30f6a98ebd..86d7f7822772 100644
--- a/lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py
+++ b/lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py
@@ -30,7 +30,6 @@ def setUp(self):
         self.dbg.SetOutputFileHandle(self.devnull, False)
         self.dbg.SetErrorFileHandle (self.devnull, False)
 
-    @add_test_categories(['pyapi'])
     def test_run_session_with_error_and_quit_legacy(self):
         """Run non-existing and quit command returns appropriate values"""
 
@@ -64,7 +63,6 @@ def setUp(self):
         self.dbg.SetOutputFile(devnull)
         self.dbg.SetErrorFile(devnull)
 
-    @add_test_categories(['pyapi'])
     def test_run_session_with_error_and_quit(self):
         """Run non-existing and quit command returns appropriate values"""
 

diff  --git a/lldb/test/API/python_api/lldbutil/frame/TestFrameUtils.py b/lldb/test/API/python_api/lldbutil/frame/TestFrameUtils.py
index 09a179cb70d9..9c69bd90161b 100644
--- a/lldb/test/API/python_api/lldbutil/frame/TestFrameUtils.py
+++ b/lldb/test/API/python_api/lldbutil/frame/TestFrameUtils.py
@@ -22,7 +22,6 @@ def setUp(self):
         self.line = line_number('main.c',
                                 "// Find the line number here.")
 
-    @add_test_categories(['pyapi'])
     def test_frame_utils(self):
         """Test utility functions for the frame object."""
         self.build()

diff  --git a/lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py b/lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py
index 4cd49700bfd0..4fdde97dba08 100644
--- a/lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py
+++ b/lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py
@@ -23,7 +23,6 @@ def setUp(self):
             'main.cpp', '// Set break point at this line.')
         self.line2 = line_number('main.cpp', '// And that line.')
 
-    @add_test_categories(['pyapi'])
     def test_lldb_iter_module(self):
         """Test module_iter works correctly for SBTarget -> SBModule."""
         self.build()
@@ -59,7 +58,6 @@ def test_lldb_iter_module(self):
                 yours[i], mine[i],
                 "UUID+FileSpec of yours[{0}] and mine[{0}] matches".format(i))
 
-    @add_test_categories(['pyapi'])
     def test_lldb_iter_breakpoint(self):
         """Test breakpoint_iter works correctly for SBTarget -> SBBreakpoint."""
         self.build()
@@ -91,7 +89,6 @@ def test_lldb_iter_breakpoint(self):
             self.assertEqual(yours[i], mine[i],
                             "ID of yours[{0}] and mine[{0}] matches".format(i))
 
-    @add_test_categories(['pyapi'])
     def test_lldb_iter_frame(self):
         """Test iterator works correctly for SBProcess->SBThread->SBFrame."""
         self.build()

diff  --git a/lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py b/lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py
index fbb8bff41287..6c8c045d0e7b 100644
--- a/lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py
+++ b/lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py
@@ -22,7 +22,6 @@ def setUp(self):
         self.line1 = line_number(
             'main.cpp', '// Set break point at this line.')
 
-    @add_test_categories(['pyapi'])
     def test_iter_registers(self):
         """Test iterator works correctly for lldbutil.iter_registers()."""
         self.build()

diff  --git a/lldb/test/API/python_api/lldbutil/process/TestPrintStackTraces.py b/lldb/test/API/python_api/lldbutil/process/TestPrintStackTraces.py
index 123b60e4cd74..4ac7b7c46ff7 100644
--- a/lldb/test/API/python_api/lldbutil/process/TestPrintStackTraces.py
+++ b/lldb/test/API/python_api/lldbutil/process/TestPrintStackTraces.py
@@ -14,7 +14,6 @@ class ThreadsStackTracesTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     def test_stack_traces(self):
         """Test SBprocess and SBThread APIs with printing of the stack traces."""
         self.build()

diff  --git a/lldb/test/API/python_api/module_section/TestModuleAndSection.py b/lldb/test/API/python_api/module_section/TestModuleAndSection.py
index 95d457697e7c..3bb26a283adc 100644
--- a/lldb/test/API/python_api/module_section/TestModuleAndSection.py
+++ b/lldb/test/API/python_api/module_section/TestModuleAndSection.py
@@ -19,7 +19,6 @@ class ModuleAndSectionAPIsTestCase(TestBase):
     # Py3 asserts due to a bug in SWIG.  A fix for this was upstreamed into
     # SWIG 3.0.8.
     @skipIf(py_version=['>=', (3, 0)], swig_version=['<', (3, 0, 8)])
-    @add_test_categories(['pyapi'])
     def test_module_and_section(self):
         """Test module and section APIs."""
         self.build()
@@ -71,7 +70,6 @@ def test_module_and_section(self):
                             symbol_type_to_str(
                                 sym.GetType()))
 
-    @add_test_categories(['pyapi'])
     def test_module_and_section_boundary_condition(self):
         """Test module and section APIs by passing None when it expects a Python string."""
         self.build()
@@ -112,7 +110,6 @@ def test_module_and_section_boundary_condition(self):
         if sec1:
             sec1.FindSubSection(None)
 
-    @add_test_categories(['pyapi'])
     def test_module_compile_unit_iter(self):
         """Test module's compile unit iterator APIs."""
         self.build()
@@ -140,7 +137,6 @@ def test_module_compile_unit_iter(self):
         for cu in exe_module.compile_unit_iter():
             print(cu)
 
-    @add_test_categories(['pyapi'])
     def test_find_compile_units(self):
         """Exercise SBModule.FindCompileUnits() API."""
         d = {'EXE': 'b.out'}

diff  --git a/lldb/test/API/python_api/name_lookup/TestNameLookup.py b/lldb/test/API/python_api/name_lookup/TestNameLookup.py
index 7db8b61d094d..c1629f950371 100644
--- a/lldb/test/API/python_api/name_lookup/TestNameLookup.py
+++ b/lldb/test/API/python_api/name_lookup/TestNameLookup.py
@@ -15,7 +15,6 @@ class TestNameLookup(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(oslist=["windows"], bugnumber='llvm.org/pr21765')
     def test_target(self):
         """Exercise SBTarget.FindFunctions() with various name masks.

diff  --git a/lldb/test/API/python_api/process/TestProcessAPI.py b/lldb/test/API/python_api/process/TestProcessAPI.py
index 7174ba1c64c4..942e2616c409 100644
--- a/lldb/test/API/python_api/process/TestProcessAPI.py
+++ b/lldb/test/API/python_api/process/TestProcessAPI.py
@@ -23,7 +23,6 @@ def setUp(self):
             "main.cpp",
             "// Set break point at this line and check variable 'my_char'.")
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # SBProcess::ReadMemory is not instrumented.
     def test_read_memory(self):
         """Test Python SBProcess.ReadMemory() API."""
@@ -122,7 +121,6 @@ def test_read_memory(self):
             self.fail(
                 "Result from SBProcess.ReadUnsignedFromMemory() does not match our expected output")
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # SBProcess::WriteMemory is not instrumented.
     def test_write_memory(self):
         """Test Python SBProcess.WriteMemory() API."""
@@ -182,7 +180,6 @@ def test_write_memory(self):
             exe=False,
             startstr=b'a')
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # SBProcess::WriteMemory is not instrumented.
     def test_access_my_int(self):
         """Test access 'my_int' using Python SBProcess.GetByteOrder() and other APIs."""
@@ -281,7 +278,6 @@ def test_access_my_int(self):
             for i in content:
                 print("byte:", i)
 
-    @add_test_categories(['pyapi'])
     def test_remote_launch(self):
         """Test SBProcess.RemoteLaunch() API with a process not in eStateConnected, and it should fail."""
         self.build()
@@ -305,7 +301,6 @@ def test_remote_launch(self):
             not success,
             "RemoteLaunch() should fail for process state != eStateConnected")
 
-    @add_test_categories(['pyapi'])
     def test_get_num_supported_hardware_watchpoints(self):
         """Test SBProcess.GetNumSupportedHardwareWatchpoints() API with a process."""
         self.build()
@@ -327,7 +322,6 @@ def test_get_num_supported_hardware_watchpoints(self):
         if self.TraceOn() and error.Success():
             print("Number of supported hardware watchpoints: %d" % num)
 
-    @add_test_categories(['pyapi'])
     @no_debug_info_test
     def test_get_process_info(self):
         """Test SBProcess::GetProcessInfo() API with a locally launched process."""

diff  --git a/lldb/test/API/python_api/process/io/TestProcessIO.py b/lldb/test/API/python_api/process/io/TestProcessIO.py
index 3f210bc71bef..312cc28aaa0e 100644
--- a/lldb/test/API/python_api/process/io/TestProcessIO.py
+++ b/lldb/test/API/python_api/process/io/TestProcessIO.py
@@ -32,7 +32,6 @@ def setup_test(self):
         self.lines = ["Line 1", "Line 2", "Line 3"]
 
     @skipIfWindows  # stdio manipulation unsupported on Windows
-    @add_test_categories(['pyapi'])
     @expectedFlakeyLinux(bugnumber="llvm.org/pr26437")
     @skipIfDarwinEmbedded # I/O redirection like this is not supported on remote iOS devices yet <rdar://problem/54581135>
     def test_stdin_by_api(self):
@@ -45,7 +44,6 @@ def test_stdin_by_api(self):
         self.check_process_output(output, output)
 
     @skipIfWindows  # stdio manipulation unsupported on Windows
-    @add_test_categories(['pyapi'])
     @expectedFlakeyLinux(bugnumber="llvm.org/pr26437")
     def test_stdin_redirection(self):
         """Exercise SBLaunchInfo::AddOpenFileAction() for STDIN without specifying STDOUT or STDERR."""
@@ -58,7 +56,6 @@ def test_stdin_redirection(self):
         self.check_process_output(output, output)
 
     @skipIfWindows  # stdio manipulation unsupported on Windows
-    @add_test_categories(['pyapi'])
     @expectedFlakeyLinux(bugnumber="llvm.org/pr26437")
     @skipIfDarwinEmbedded # debugserver can't create/write files on the device
     def test_stdout_redirection(self):
@@ -73,7 +70,6 @@ def test_stdout_redirection(self):
         self.check_process_output(output, error)
 
     @skipIfWindows  # stdio manipulation unsupported on Windows
-    @add_test_categories(['pyapi'])
     @expectedFlakeyLinux(bugnumber="llvm.org/pr26437")
     @skipIfDarwinEmbedded # debugserver can't create/write files on the device
     def test_stderr_redirection(self):
@@ -88,7 +84,6 @@ def test_stderr_redirection(self):
         self.check_process_output(output, error)
 
     @skipIfWindows  # stdio manipulation unsupported on Windows
-    @add_test_categories(['pyapi'])
     @expectedFlakeyLinux(bugnumber="llvm.org/pr26437")
     @skipIfDarwinEmbedded # debugserver can't create/write files on the device
     def test_stdout_stderr_redirection(self):

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

diff  --git a/lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py b/lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py
index 62c3ac2e5022..99369f8a1e8c 100644
--- a/lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py
+++ b/lldb/test/API/python_api/sbenvironment/TestSBEnvironment.py
@@ -30,7 +30,6 @@ def assertEqualEntries(self, env, entries):
 
 
 
-    @add_test_categories(['pyapi'])
     @skipIfRemote # Remote environment not supported.
     def test_platform_environment(self):
         env = self.dbg.GetSelectedPlatform().GetEnvironment()
@@ -38,7 +37,6 @@ def test_platform_environment(self):
         self.assertNotEqual(env.Get("PATH"), None)
 
 
-    @add_test_categories(['pyapi'])
     def test_launch_info(self):
         target = self.dbg.CreateTarget("")
         launch_info = target.GetLaunchInfo()
@@ -67,7 +65,6 @@ def test_launch_info(self):
         self.assertEqualEntries(launch_info.GetEnvironment(), ["BAR=foo", "X=y"])
 
 
-    @add_test_categories(['pyapi'])
     @skipIfRemote # Remote environment not supported.
     def test_target_environment(self):
         env = self.dbg.GetSelectedTarget().GetEnvironment()
@@ -85,7 +82,6 @@ def test_target_environment(self):
         env.PutEntry("PATH=#" + path)
         self.assertEqual(target.GetEnvironment().Get("PATH"), path)
 
-    @add_test_categories(['pyapi'])
     def test_creating_and_modifying_environment(self):
         env = lldb.SBEnvironment()
 

diff  --git a/lldb/test/API/python_api/sbplatform/TestSBPlatform.py b/lldb/test/API/python_api/sbplatform/TestSBPlatform.py
index 3fa4c10b401e..b354a6e28a08 100644
--- a/lldb/test/API/python_api/sbplatform/TestSBPlatform.py
+++ b/lldb/test/API/python_api/sbplatform/TestSBPlatform.py
@@ -8,7 +8,6 @@ class SBPlatformAPICase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
-    @add_test_categories(['pyapi'])
     @skipIfRemote # Remote environment not supported.
     def test_run(self):
         self.build()

diff  --git a/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py b/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py
index a1a318517bed..26f179116d27 100644
--- a/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py
+++ b/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py
@@ -18,7 +18,6 @@ class TestStructuredDataAPI(TestBase):
     def test(self):
         self.structured_data_api_test()
 
-    @add_test_categories(['pyapi'])
     def structured_data_api_test(self):
         error = lldb.SBError()
         s = lldb.SBStream()

diff  --git a/lldb/test/API/python_api/sbvalue_persist/TestSBValuePersist.py b/lldb/test/API/python_api/sbvalue_persist/TestSBValuePersist.py
index 94eec2ab6482..8324d236a469 100644
--- a/lldb/test/API/python_api/sbvalue_persist/TestSBValuePersist.py
+++ b/lldb/test/API/python_api/sbvalue_persist/TestSBValuePersist.py
@@ -13,7 +13,6 @@ class SBValuePersistTestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24772")
     def test(self):
         """Test SBValue::Persist"""

diff  --git a/lldb/test/API/python_api/section/TestSectionAPI.py b/lldb/test/API/python_api/section/TestSectionAPI.py
index 1513b98b7728..bd8e45164a16 100644
--- a/lldb/test/API/python_api/section/TestSectionAPI.py
+++ b/lldb/test/API/python_api/section/TestSectionAPI.py
@@ -13,7 +13,6 @@ class SectionAPITestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     def test_get_target_byte_size(self):
         d = {'EXE': 'b.out'}
         self.build(dictionary=d)

diff  --git a/lldb/test/API/python_api/signals/TestSignalsAPI.py b/lldb/test/API/python_api/signals/TestSignalsAPI.py
index 0f590166f20e..6c535d7e759e 100644
--- a/lldb/test/API/python_api/signals/TestSignalsAPI.py
+++ b/lldb/test/API/python_api/signals/TestSignalsAPI.py
@@ -15,7 +15,6 @@ class SignalsAPITestCase(TestBase):
     mydir = TestBase.compute_mydir(__file__)
     NO_DEBUG_INFO_TESTCASE = True
 
-    @add_test_categories(['pyapi'])
     @skipIfWindows  # Windows doesn't have signals
     def test_ignore_signal(self):
         """Test Python SBUnixSignals.Suppress/Stop/Notify() API."""

diff  --git a/lldb/test/API/python_api/symbol-context/TestSymbolContext.py b/lldb/test/API/python_api/symbol-context/TestSymbolContext.py
index 742ececee428..c02e1bf8768e 100644
--- a/lldb/test/API/python_api/symbol-context/TestSymbolContext.py
+++ b/lldb/test/API/python_api/symbol-context/TestSymbolContext.py
@@ -21,7 +21,6 @@ def setUp(self):
         self.line = line_number(
             'main.c', '// Find the line number of function "c" here.')
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")
     @skipIfReproducer # FIXME: Unexpected packet during (passive) replay
     def test(self):

diff  --git a/lldb/test/API/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py b/lldb/test/API/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py
index 27d1b60a5075..8188c733d65f 100644
--- a/lldb/test/API/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py
+++ b/lldb/test/API/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py
@@ -14,7 +14,6 @@ class SymbolContextTwoFilesTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(oslist=["windows"])
     def test_lookup_by_address(self):
         """Test lookup by address in a module with multiple compilation units"""
@@ -36,7 +35,6 @@ def test_lookup_by_address(self):
             self.assertEqual(symbol_name,
                              sc_by_address.GetFunction().GetName())
 
-    @add_test_categories(['pyapi'])
     def test_ranges_in_multiple_compile_unit(self):
         """This test verifies that we correctly handle the case when multiple
         compile unit contains DW_AT_ranges and DW_AT_ranges_base attributes."""

diff  --git a/lldb/test/API/python_api/target/TestTargetAPI.py b/lldb/test/API/python_api/target/TestTargetAPI.py
index 7954f6625e52..c53f6002c3c2 100644
--- a/lldb/test/API/python_api/target/TestTargetAPI.py
+++ b/lldb/test/API/python_api/target/TestTargetAPI.py
@@ -35,7 +35,6 @@ def setUp(self):
     # It does not segfaults now.  But for dwarf, the variable value is None if
     # the inferior process does not exist yet.  The radar has been updated.
     #@unittest232.skip("segmentation fault -- skipping")
-    @add_test_categories(['pyapi'])
     def test_find_global_variables(self):
         """Exercise SBTarget.FindGlobalVariables() API."""
         d = {'EXE': 'b.out'}
@@ -43,7 +42,6 @@ def test_find_global_variables(self):
         self.setTearDownCleanup(dictionary=d)
         self.find_global_variables('b.out')
 
-    @add_test_categories(['pyapi'])
     def test_find_compile_units(self):
         """Exercise SBTarget.FindCompileUnits() API."""
         d = {'EXE': 'b.out'}
@@ -51,7 +49,6 @@ def test_find_compile_units(self):
         self.setTearDownCleanup(dictionary=d)
         self.find_compile_units(self.getBuildArtifact('b.out'))
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")
     def test_find_functions(self):
         """Exercise SBTarget.FindFunctions() API."""
@@ -60,20 +57,17 @@ def test_find_functions(self):
         self.setTearDownCleanup(dictionary=d)
         self.find_functions('b.out')
 
-    @add_test_categories(['pyapi'])
     def test_get_description(self):
         """Exercise SBTarget.GetDescription() API."""
         self.build()
         self.get_description()
 
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(oslist=["windows"], bugnumber='llvm.org/pr21765')
     def test_resolve_symbol_context_with_address(self):
         """Exercise SBTarget.ResolveSymbolContextForAddress() API."""
         self.build()
         self.resolve_symbol_context_with_address()
 
-    @add_test_categories(['pyapi'])
     def test_get_platform(self):
         d = {'EXE': 'b.out'}
         self.build(dictionary=d)
@@ -82,7 +76,6 @@ def test_get_platform(self):
         platform = target.platform
         self.assertTrue(platform, VALID_PLATFORM)
 
-    @add_test_categories(['pyapi'])
     def test_get_data_byte_size(self):
         d = {'EXE': 'b.out'}
         self.build(dictionary=d)
@@ -90,7 +83,6 @@ def test_get_data_byte_size(self):
         target = self.create_simple_target('b.out')
         self.assertEqual(target.data_byte_size, 1)
 
-    @add_test_categories(['pyapi'])
     def test_get_code_byte_size(self):
         d = {'EXE': 'b.out'}
         self.build(dictionary=d)
@@ -98,7 +90,6 @@ def test_get_code_byte_size(self):
         target = self.create_simple_target('b.out')
         self.assertEqual(target.code_byte_size, 1)
 
-    @add_test_categories(['pyapi'])
     def test_resolve_file_address(self):
         d = {'EXE': 'b.out'}
         self.build(dictionary=d)
@@ -121,7 +112,6 @@ def test_resolve_file_address(self):
         self.assertIsNotNone(data_section2)
         self.assertEqual(data_section.name, data_section2.name)
 
-    @add_test_categories(['pyapi'])
     @skipIfReproducer # SBTarget::ReadMemory is not instrumented.
     def test_read_memory(self):
         d = {'EXE': 'b.out'}
@@ -151,7 +141,6 @@ def test_read_memory(self):
         self.assertEqual(len(content), 1)
 
 
-    @add_test_categories(['pyapi'])
     @skipIfWindows  # stdio manipulation unsupported on Windows
     @skipIfRemote   # stdio manipulation unsupported on remote iOS devices<rdar://problem/54581135>
     @skipIfReproducer  # stdout not captured by reproducers
@@ -334,7 +323,6 @@ def get_description(self):
                     substrs=['Target', 'Module', 'a.out', 'Breakpoint'])
 
     @skipIfRemote
-    @add_test_categories(['pyapi'])
     @no_debug_info_test
     @skipIfReproducer # Inferior doesn't run during replay.
     def test_launch_new_process_and_redirect_stdout(self):
@@ -476,6 +464,7 @@ def resolve_symbol_context_with_address(self):
         desc2 = get_description(symbol2)
         self.assertTrue(desc1 and desc2 and desc1 == desc2,
                         "The two addresses should resolve to the same symbol")
+
     def test_default_arch(self):
         """ Test the other two target create methods using LLDB_ARCH_DEFAULT. """
         self.build()
@@ -490,7 +479,6 @@ def test_default_arch(self):
         self.assertTrue(target3.IsValid())
 
 
-    @add_test_categories(['pyapi'])
     @skipIfWindows
     def test_is_loaded(self):
         """Exercise SBTarget.IsLoaded(SBModule&) API."""

diff  --git a/lldb/test/API/python_api/thread/TestThreadAPI.py b/lldb/test/API/python_api/thread/TestThreadAPI.py
index a369c70a0fd4..b8416ebba9b8 100644
--- a/lldb/test/API/python_api/thread/TestThreadAPI.py
+++ b/lldb/test/API/python_api/thread/TestThreadAPI.py
@@ -16,19 +16,16 @@ class ThreadAPITestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     def test_get_process(self):
         """Test Python SBThread.GetProcess() API."""
         self.build()
         self.get_process()
 
-    @add_test_categories(['pyapi'])
     def test_get_stop_description(self):
         """Test Python SBThread.GetStopDescription() API."""
         self.build()
         self.get_stop_description()
 
-    @add_test_categories(['pyapi'])
     def test_run_to_address(self):
         """Test Python SBThread.RunToAddress() API."""
         # We build a 
diff erent executable than the default build() does.
@@ -38,7 +35,6 @@ def test_run_to_address(self):
         self.run_to_address(self.exe_name)
 
     @skipIfAsan # The output looks 
diff erent under ASAN.
-    @add_test_categories(['pyapi'])
     @expectedFailureAll(oslist=["linux"], archs=['arm'], bugnumber="llvm.org/pr45892")
     @expectedFailureAll(oslist=["windows"])
     def test_step_out_of_malloc_into_function_b(self):
@@ -49,7 +45,6 @@ def test_step_out_of_malloc_into_function_b(self):
         self.setTearDownCleanup(dictionary=d)
         self.step_out_of_malloc_into_function_b(self.exe_name)
 
-    @add_test_categories(['pyapi'])
     def test_step_over_3_times(self):
         """Test Python SBThread.StepOver() API."""
         # We build a 
diff erent executable than the default build() does.

diff  --git a/lldb/test/API/python_api/type/TestTypeList.py b/lldb/test/API/python_api/type/TestTypeList.py
index 9d4f16413f1b..f60237bf2f72 100644
--- a/lldb/test/API/python_api/type/TestTypeList.py
+++ b/lldb/test/API/python_api/type/TestTypeList.py
@@ -25,7 +25,6 @@ def setUp(self):
         self.source = 'main.cpp'
         self.line = line_number(self.source, '// Break at this line')
 
-    @add_test_categories(['pyapi'])
     def test(self):
         """Exercise SBType and SBTypeList API."""
         d = {'EXE': self.exe_name}

diff  --git a/lldb/test/API/python_api/value/TestValueAPI.py b/lldb/test/API/python_api/value/TestValueAPI.py
index b38eb2dbde61..543186c1e31f 100644
--- a/lldb/test/API/python_api/value/TestValueAPI.py
+++ b/lldb/test/API/python_api/value/TestValueAPI.py
@@ -24,7 +24,6 @@ def setUp(self):
         self.line = line_number('main.c', '// Break at this line')
 
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24772")
-    @add_test_categories(['pyapi'])
     def test(self):
         """Exercise some SBValue APIs."""
         d = {'EXE': self.exe_name}

diff  --git a/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py b/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
index b35c18a6777f..ec162f65e209 100644
--- a/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
+++ b/lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py
@@ -26,7 +26,6 @@ def setUp(self):
         self.end_line = line_number(
             'main.c', '// Set a breakpoint here at the end')
 
-    @add_test_categories(['pyapi'])
     @expectedFlakeyLinux("llvm.org/pr25652")
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24772")
     def test_change_value(self):

diff  --git a/lldb/test/API/python_api/value/empty_class/TestValueAPIEmptyClass.py b/lldb/test/API/python_api/value/empty_class/TestValueAPIEmptyClass.py
index c778577aed31..ac8f60bb0c26 100644
--- a/lldb/test/API/python_api/value/empty_class/TestValueAPIEmptyClass.py
+++ b/lldb/test/API/python_api/value/empty_class/TestValueAPIEmptyClass.py
@@ -8,7 +8,6 @@ class ValueAPIEmptyClassTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     def test(self):
         self.build()
         exe = self.getBuildArtifact("a.out")

diff  --git a/lldb/test/API/python_api/value/linked_list/TestValueAPILinkedList.py b/lldb/test/API/python_api/value/linked_list/TestValueAPILinkedList.py
index f01ce035646f..afd25bda879a 100644
--- a/lldb/test/API/python_api/value/linked_list/TestValueAPILinkedList.py
+++ b/lldb/test/API/python_api/value/linked_list/TestValueAPILinkedList.py
@@ -28,7 +28,6 @@ def setUp(self):
     # Py3 asserts due to a bug in SWIG.  A fix for this was upstreamed into
     # SWIG 3.0.8.
     @skipIf(py_version=['>=', (3, 0)], swig_version=['<', (3, 0, 8)])
-    @add_test_categories(['pyapi'])
     def test(self):
         """Exercise SBValue API linked_list_iter."""
         d = {'EXE': self.exe_name}

diff  --git a/lldb/test/API/python_api/value_var_update/TestValueVarUpdate.py b/lldb/test/API/python_api/value_var_update/TestValueVarUpdate.py
index b425cef6e1e9..e7d47de69c60 100644
--- a/lldb/test/API/python_api/value_var_update/TestValueVarUpdate.py
+++ b/lldb/test/API/python_api/value_var_update/TestValueVarUpdate.py
@@ -12,7 +12,6 @@ class ValueVarUpdateTestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
-    @add_test_categories(['pyapi'])
     def test_with_process_launch_api(self):
         """Test SBValue::GetValueDidChange"""
         # Get the full path to our executable to be attached/debugged.

diff  --git a/lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py b/lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py
index 260956b1f7c8..f135ed6700f1 100644
--- a/lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py
+++ b/lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py
@@ -25,7 +25,6 @@ def setUp(self):
         self.line = line_number(
             self.source, '// Set break point at this line.')
 
-    @add_test_categories(['pyapi'])
     # Read-write watchpoints not supported on SystemZ
     @expectedFailureAll(archs=['s390x'])
     def test_watch_val(self):

diff  --git a/lldb/test/API/python_api/watchpoint/TestWatchpointIgnoreCount.py b/lldb/test/API/python_api/watchpoint/TestWatchpointIgnoreCount.py
index 83a11d423462..d0fd39834134 100644
--- a/lldb/test/API/python_api/watchpoint/TestWatchpointIgnoreCount.py
+++ b/lldb/test/API/python_api/watchpoint/TestWatchpointIgnoreCount.py
@@ -25,7 +25,6 @@ def setUp(self):
         self.line = line_number(
             self.source, '// Set break point at this line.')
 
-    @add_test_categories(['pyapi'])
     # Read-write watchpoints not supported on SystemZ
     @expectedFailureAll(archs=['s390x'])
     def test_set_watch_ignore_count(self):

diff  --git a/lldb/test/API/python_api/watchpoint/TestWatchpointIter.py b/lldb/test/API/python_api/watchpoint/TestWatchpointIter.py
index 17ab024e1963..6ca99993bcd1 100644
--- a/lldb/test/API/python_api/watchpoint/TestWatchpointIter.py
+++ b/lldb/test/API/python_api/watchpoint/TestWatchpointIter.py
@@ -30,7 +30,6 @@ def setUp(self):
         self.line = line_number(
             self.source, '// Set break point at this line.')
 
-    @add_test_categories(['pyapi'])
     def test_watch_iter(self):
         """Exercise SBTarget.watchpoint_iter() API to iterate on the available watchpoints."""
         self.build()

diff  --git a/lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py b/lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
index 0b59e8d114a2..7df728509c11 100644
--- a/lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
+++ b/lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
@@ -28,7 +28,6 @@ def setUp(self):
         # This is for verifying that watch location works.
         self.violating_func = "do_bad_thing_with_location"
 
-    @add_test_categories(['pyapi'])
     def test_watch_location(self):
         """Exercise SBValue.WatchPointee() API to set a watchpoint."""
         self.build()

diff  --git a/lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py b/lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
index 02632cb34305..15d9b2a5abe9 100644
--- a/lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
+++ b/lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
@@ -27,7 +27,6 @@ def setUp(self):
         # This is for verifying that watch location works.
         self.violating_func = "do_bad_thing_with_location"
 
-    @add_test_categories(['pyapi'])
     def test_watch_address(self):
         """Exercise SBTarget.WatchAddress() API to set a watchpoint."""
         self.build()
@@ -99,7 +98,6 @@ def test_watch_address(self):
 
         # This finishes our test.
 
-    @add_test_categories(['pyapi'])
     # No size constraint on MIPS for watches
     @skipIf(archs=['mips', 'mipsel', 'mips64', 'mips64el'])
     @skipIf(archs=['s390x'])  # Likewise on SystemZ


        


More information about the lldb-commits mailing list