[Lldb-commits] [lldb] r317277 - Remove getCategories mechanism of specifying test categories
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Thu Nov 2 15:13:09 PDT 2017
Author: labath
Date: Thu Nov 2 15:13:09 2017
New Revision: 317277
URL: http://llvm.org/viewvc/llvm-project?rev=317277&view=rev
Log:
Remove getCategories mechanism of specifying test categories
Summary:
This mechanism was mostly redundant with the file-based .categories
mechanism, and it was interfering with it, as any test which implemented
a getCategories method would not inherit the filesystem categories.
This patch removes it. The existing categories are preserved either by
adding a .categories file, or using the @add_test_categories decorator.
Reviewers: jingham, clayborg, zturner
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D39515
Added:
lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/.categories
lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/.categories
lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/.categories
lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/.categories
Modified:
lldb/trunk/packages/Python/lldbsuite/test/example/TestSequenceFunctions.py
lldb/trunk/packages/Python/lldbsuite/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py
lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py
lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/TestStepUntil.py
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py
lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/TestStepTarget.py
lldb/trunk/packages/Python/lldbsuite/test/lang/c/stepping/TestStepAndBreakpoints.py
lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py
lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py
lldb/trunk/packages/Python/lldbsuite/test/test_result.py
lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/lldbmi_testcase.py
Modified: lldb/trunk/packages/Python/lldbsuite/test/example/TestSequenceFunctions.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/example/TestSequenceFunctions.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/example/TestSequenceFunctions.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/example/TestSequenceFunctions.py Thu Nov 2 15:13:09 2017
@@ -30,8 +30,5 @@ class SequenceFunctionsTestCase(unittest
for element in random.sample(self.seq, 5):
self.assertTrue(element in self.seq)
- def getCategories(self):
- return []
-
if __name__ == '__main__':
unittest.main()
Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py Thu Nov 2 15:13:09 2017
@@ -16,15 +16,13 @@ from lldbsuite.test import lldbutil
class ExprDoesntDeadlockTestCase(TestBase):
- def getCategories(self):
- return ['basic_process']
-
mydir = TestBase.compute_mydir(__file__)
@expectedFailureAll(oslist=['freebsd'], bugnumber='llvm.org/pr17946')
@expectedFailureAll(
oslist=["windows"],
bugnumber="Windows doesn't have pthreads, test needs to be ported")
+ @add_test_categories(["basic_process"])
def test_with_run_command(self):
"""Test that expr will time out and allow other threads to run if it blocks."""
self.build()
Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/.categories
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/.categories?rev=317277&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/.categories (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/.categories Thu Nov 2 15:13:09 2017
@@ -0,0 +1 @@
+basic_process
Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py Thu Nov 2 15:13:09 2017
@@ -17,9 +17,6 @@ from lldbsuite.test import lldbutil
@skipIfWindows # Windows doesn't have dlopen and friends, dynamic libraries work differently
class LoadUnloadTestCase(TestBase):
- def getCategories(self):
- return ['basic_process']
-
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
Added: lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/.categories
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/.categories?rev=317277&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/.categories (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/.categories Thu Nov 2 15:13:09 2017
@@ -0,0 +1 @@
+basic_process
Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/TestStepUntil.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/TestStepUntil.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/TestStepUntil.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/step_until/TestStepUntil.py Thu Nov 2 15:13:09 2017
@@ -15,9 +15,6 @@ class TestCStepping(TestBase):
mydir = TestBase.compute_mydir(__file__)
- def getCategories(self):
- return ['basic_process']
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py Thu Nov 2 15:13:09 2017
@@ -15,9 +15,6 @@ from lldbsuite.test import lldbutil
class HelloWatchpointTestCase(TestBase):
- def getCategories(self):
- return ['basic_process']
-
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
@@ -37,6 +34,7 @@ class HelloWatchpointTestCase(TestBase):
@expectedFailureAll(
oslist=["windows"],
bugnumber="llvm.org/pr24446: WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows")
+ @add_test_categories(["basic_process"])
def test_hello_watchpoint_using_watchpoint_set(self):
"""Test a simple sequence of watchpoint creation and watchpoint hit."""
self.build(dictionary=self.d)
Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py Thu Nov 2 15:13:09 2017
@@ -13,9 +13,6 @@ class TestStepOverWatchpoint(TestBase):
mydir = TestBase.compute_mydir(__file__)
- def getCategories(self):
- return ['basic_process']
-
@expectedFailureAll(
oslist=["linux"],
archs=[
@@ -28,6 +25,7 @@ class TestStepOverWatchpoint(TestBase):
# Read-write watchpoints not supported on SystemZ
@expectedFailureAll(archs=['s390x'])
@expectedFailureAll(oslist=["ios", "watchos", "tvos", "bridgeos"], bugnumber="<rdar://problem/34027183>") # watchpoint tests aren't working on arm64
+ @add_test_categories(["basic_process"])
def test(self):
"""Test stepping over watchpoints."""
self.build()
Added: lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/.categories
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/.categories?rev=317277&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/.categories (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/.categories Thu Nov 2 15:13:09 2017
@@ -0,0 +1 @@
+basic_process
Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/TestStepTarget.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/TestStepTarget.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/TestStepTarget.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/c/step-target/TestStepTarget.py Thu Nov 2 15:13:09 2017
@@ -14,9 +14,6 @@ class TestStepTarget(TestBase):
mydir = TestBase.compute_mydir(__file__)
- def getCategories(self):
- return ['basic_process']
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/c/stepping/TestStepAndBreakpoints.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/c/stepping/TestStepAndBreakpoints.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/c/stepping/TestStepAndBreakpoints.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/c/stepping/TestStepAndBreakpoints.py Thu Nov 2 15:13:09 2017
@@ -15,16 +15,13 @@ class TestCStepping(TestBase):
mydir = TestBase.compute_mydir(__file__)
- def getCategories(self):
- return ['basic_process']
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line numbers that we will step to in main:
self.main_source = "main.c"
- @add_test_categories(['pyapi'])
+ @add_test_categories(['pyapi', 'basic_process'])
@expectedFailureAll(oslist=['freebsd'], bugnumber='llvm.org/pr17932')
@expectedFailureAll(oslist=["linux"], bugnumber="llvm.org/pr14437")
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24777")
Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py Thu Nov 2 15:13:09 2017
@@ -13,9 +13,6 @@ from lldbsuite.test import lldbutil
class TestObjCStepping(TestBase):
- def getCategories(self):
- return ['basic_process']
-
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
@@ -35,7 +32,7 @@ class TestObjCStepping(TestBase):
self.main_source, '// Step over nil should stop here.')
@skipUnlessDarwin
- @add_test_categories(['pyapi'])
+ @add_test_categories(['pyapi', 'basic_process'])
def test_with_python_api(self):
"""Test stepping through ObjC method dispatch in various forms."""
self.build()
Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Thu Nov 2 15:13:09 2017
@@ -1834,30 +1834,6 @@ class TestBase(Base):
# Can be overridden by the LLDB_TIME_WAIT_NEXT_LAUNCH environment variable.
timeWaitNextLaunch = 1.0
- # Returns the list of categories to which this test case belongs
- # by default, look for a ".categories" file, and read its contents
- # if no such file exists, traverse the hierarchy - we guarantee
- # a .categories to exist at the top level directory so we do not end up
- # looping endlessly - subclasses are free to define their own categories
- # in whatever way makes sense to them
- def getCategories(self):
- import inspect
- import os.path
- folder = inspect.getfile(self.__class__)
- folder = os.path.dirname(folder)
- while folder != '/':
- categories_file_name = os.path.join(folder, ".categories")
- if os.path.exists(categories_file_name):
- categories_file = open(categories_file_name, 'r')
- categories = categories_file.readline()
- categories_file.close()
- categories = str.replace(categories, '\n', '')
- categories = str.replace(categories, '\r', '')
- return categories.split(',')
- else:
- folder = os.path.dirname(folder)
- continue
-
def generateSource(self, source):
template = source + '.template'
temp = os.path.join(os.getcwd(), template)
Modified: lldb/trunk/packages/Python/lldbsuite/test/test_result.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/test_result.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/test_result.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/test_result.py Thu Nov 2 15:13:09 2017
@@ -105,6 +105,32 @@ class LLDBTestResult(unittest2.TextTestR
else:
return str(test)
+ @staticmethod
+ def _getFileBasedCategories(test):
+ """
+ Returns the list of categories to which this test case belongs by
+ looking for a ".categories" file. We start at the folder the test is in
+ an traverse the hierarchy upwards - we guarantee a .categories to exist
+ at the top level directory so we do not end up looping endlessly.
+ """
+ import inspect
+ import os.path
+ folder = inspect.getfile(test.__class__)
+ folder = os.path.dirname(folder)
+ while folder != '/':
+ categories_file_name = os.path.join(folder, ".categories")
+ if os.path.exists(categories_file_name):
+ categories_file = open(categories_file_name, 'r')
+ categories = categories_file.readline()
+ categories_file.close()
+ categories = str.replace(categories, '\n', '')
+ categories = str.replace(categories, '\r', '')
+ return categories.split(',')
+ else:
+ folder = os.path.dirname(folder)
+ continue
+
+
def getCategoriesForTest(self, test):
"""
Gets all the categories for the currently running test method in test case
@@ -114,7 +140,7 @@ class LLDBTestResult(unittest2.TextTestR
if test_method is not None and hasattr(test_method, "categories"):
test_categories.extend(test_method.categories)
- test_categories.extend(test.getCategories())
+ test_categories.extend(self._getFileBasedCategories(test))
return test_categories
Added: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/.categories
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/.categories?rev=317277&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/.categories (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/.categories Thu Nov 2 15:13:09 2017
@@ -0,0 +1 @@
+lldb-mi
Modified: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/lldbmi_testcase.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/lldbmi_testcase.py?rev=317277&r1=317276&r2=317277&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/lldbmi_testcase.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/lldbmi_testcase.py Thu Nov 2 15:13:09 2017
@@ -14,9 +14,6 @@ class MiTestCaseBase(Base):
myexe = "a.out"
mylog = "child.log"
- def getCategories(self):
- return ['lldb-mi']
-
@classmethod
def classCleanup(cls):
TestBase.RemoveTempFile(cls.myexe)
More information about the lldb-commits
mailing list