forked from OSchip/llvm-project
[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
This commit is contained in:
parent
984f1bb3e7
commit
03a242bd41
|
|
@ -113,8 +113,14 @@ class LLDBTestResult(unittest2.TextTestResult):
|
||||||
"""
|
"""
|
||||||
import inspect
|
import inspect
|
||||||
import os.path
|
import os.path
|
||||||
folder = inspect.getfile(test.__class__)
|
# Use test.test_filename if the test was created with
|
||||||
folder = os.path.dirname(folder)
|
# 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 != '/':
|
while folder != '/':
|
||||||
categories_file_name = os.path.join(folder, ".categories")
|
categories_file_name = os.path.join(folder, ".categories")
|
||||||
if os.path.exists(categories_file_name):
|
if os.path.exists(categories_file_name):
|
||||||
|
|
@ -127,6 +133,7 @@ class LLDBTestResult(unittest2.TextTestResult):
|
||||||
else:
|
else:
|
||||||
folder = os.path.dirname(folder)
|
folder = os.path.dirname(folder)
|
||||||
continue
|
continue
|
||||||
|
raise Exception("Did not find a .categories file, starting at: %s" % start_path)
|
||||||
|
|
||||||
|
|
||||||
def getCategoriesForTest(self, test):
|
def getCategoriesForTest(self, test):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue