summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite
diff options
context:
space:
mode:
authorJordan Rupprecht <rupprecht@google.com>2019-12-06 08:36:23 -0800
committerJordan Rupprecht <rupprecht@google.com>2019-12-06 08:36:23 -0800
commit03a242bd41ee49e17f8da96af9787d13e7ea2b93 (patch)
tree427ce7700b3656eb6079f2084573938bcce6e806 /lldb/packages/Python/lldbsuite
parent984f1bb3e794b83da5dde9440f9807c645e8e6db (diff)
downloadbcm5719-llvm-03a242bd41ee49e17f8da96af9787d13e7ea2b93.tar.gz
bcm5719-llvm-03a242bd41ee49e17f8da96af9787d13e7ea2b93.zip
[lldb][test] Handle .categories lookup for inline tests.
Summary: When creating a test with `lldbinline.MakeInlineTest()`, the reported `inspect.getfile(test.__class__)` is `lldbtest.pyc`, meaning any `.categories` file will be ineffective for those tests. Check for the test_filename first, which inline tests will set. Additionally, raise an error with the starting dir if `.categories` is not found. This makes the problem more obvious when it occurs: when the test is separated from the test framework tree. Reviewers: labath, JDevlieghere Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D71099
Diffstat (limited to 'lldb/packages/Python/lldbsuite')
-rw-r--r--lldb/packages/Python/lldbsuite/test/test_result.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/test_result.py b/lldb/packages/Python/lldbsuite/test/test_result.py
index 8573b3b6be6..7c924cfd6f2 100644
--- a/lldb/packages/Python/lldbsuite/test/test_result.py
+++ b/lldb/packages/Python/lldbsuite/test/test_result.py
@@ -113,8 +113,14 @@ class LLDBTestResult(unittest2.TextTestResult):
"""
import inspect
import os.path
- folder = inspect.getfile(test.__class__)
- folder = os.path.dirname(folder)
+ # Use test.test_filename if the test was created with
+ # lldbinline.MakeInlineTest().
+ if hasattr(test, 'test_filename'):
+ start_path = test.test_filename
+ else:
+ start_path = inspect.getfile(test.__class__)
+
+ folder = os.path.dirname(start_path)
while folder != '/':
categories_file_name = os.path.join(folder, ".categories")
if os.path.exists(categories_file_name):
@@ -127,6 +133,7 @@ class LLDBTestResult(unittest2.TextTestResult):
else:
folder = os.path.dirname(folder)
continue
+ raise Exception("Did not find a .categories file, starting at: %s" % start_path)
def getCategoriesForTest(self, test):
OpenPOWER on IntegriCloud