summaryrefslogtreecommitdiffstats
path: root/lldb/test/test_categories.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/test/test_categories.py')
-rw-r--r--lldb/test/test_categories.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/lldb/test/test_categories.py b/lldb/test/test_categories.py
new file mode 100644
index 00000000000..8438a4eba23
--- /dev/null
+++ b/lldb/test/test_categories.py
@@ -0,0 +1,47 @@
+"""
+Provides definitions for various lldb test categories
+"""
+
+import sys
+
+all_categories = {
+ 'dataformatters': 'Tests related to the type command and the data formatters subsystem',
+ 'expression' : 'Tests related to the expression parser',
+ 'objc' : 'Tests related to the Objective-C programming language support',
+ 'pyapi' : 'Tests related to the Python API',
+ 'basic_process' : 'Basic process execution sniff tests.',
+ 'cmdline' : 'Tests related to the LLDB command-line interface',
+ 'dyntype' : 'Tests related to dynamic type support',
+ 'stresstest' : 'Tests related to stressing lldb limits',
+ 'flakey' : 'Flakey test cases, i.e. tests that do not reliably pass at each execution'
+}
+
+def unique_string_match(yourentry, list):
+ candidate = None
+ for item in list:
+ if not item.startswith(yourentry):
+ continue
+ if candidate:
+ return None
+ candidate = item
+ return candidate
+
+def validate(categories, exact_match):
+ """
+ For each category in categories, ensure that it's a valid category (if exact_match is false,
+ unique prefixes are also accepted). If a category is invalid, print a message and quit.
+ If all categories are valid, return the list of categories. Prefixes are expanded in the
+ returned list.
+ """
+ result = []
+ for category in categories:
+ origCategory = category
+ if category not in all_categories and not exact_match:
+ category = unique_string_match(category, all_categories)
+ if (category not in all_categories) or category == None:
+ print("fatal error: category '" + origCategory + "' is not a valid category")
+ print("if you have added a new category, please edit test_categories.py, adding your new category to all_categories")
+ print("else, please specify one or more of the following: " + str(list(all_categories.keys())))
+ sys.exit(1)
+ result.append(category)
+ return result
OpenPOWER on IntegriCloud