rupprecht created this revision.
rupprecht added reviewers: labath, JDevlieghere.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D71099

Files:
  lldb/packages/Python/lldbsuite/test/test_result.py


Index: lldb/packages/Python/lldbsuite/test/test_result.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/test_result.py
+++ lldb/packages/Python/lldbsuite/test/test_result.py
@@ -113,8 +113,14 @@
         """
         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 @@
             else:
                 folder = os.path.dirname(folder)
                 continue
+        raise Exception("Did not find a .categories file, starting at: %s" % 
start_path)
 
 
     def getCategoriesForTest(self, test):


Index: lldb/packages/Python/lldbsuite/test/test_result.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/test_result.py
+++ lldb/packages/Python/lldbsuite/test/test_result.py
@@ -113,8 +113,14 @@
         """
         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 @@
             else:
                 folder = os.path.dirname(folder)
                 continue
+        raise Exception("Did not find a .categories file, starting at: %s" % start_path)
 
 
     def getCategoriesForTest(self, test):
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
  • [Lldb-commits] [PA... Jordan Rupprecht via Phabricator via lldb-commits

Reply via email to