summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorTodd Fiala <todd.fiala@gmail.com>2016-04-18 20:26:56 +0000
committerTodd Fiala <todd.fiala@gmail.com>2016-04-18 20:26:56 +0000
commitdad52cee4b85a058c8140649e46a02f6d95ba4d1 (patch)
tree4d05895c7fd22b4113958503735fb6adc7a1f8b0 /lldb/packages/Python/lldbsuite/test
parent3fde652e1864f0e4273352c185cd14f80afbe064 (diff)
downloadbcm5719-llvm-dad52cee4b85a058c8140649e46a02f6d95ba4d1.tar.gz
bcm5719-llvm-dad52cee4b85a058c8140649e46a02f6d95ba4d1.zip
ensure lldbinline remembers .py extension
This ensure lldbinline.test_file paths are tracked as .py files rather than .pyc files. Also, this change adds an assert to the test infrastructure if a filename that is not ending in .py is attempted to be added to the test events infrastructure where we track test results. See: http://reviews.llvm.org/D19215 Earlier revision reviewed by: Pavel Labath llvm-svn: 266664
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lldbinline.py9
-rw-r--r--lldb/packages/Python/lldbsuite/test/result_formatter.py17
2 files changed, 20 insertions, 6 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lldbinline.py b/lldb/packages/Python/lldbsuite/test/lldbinline.py
index 4eaa2a7583d..ac2e2573c1a 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbinline.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbinline.py
@@ -189,6 +189,12 @@ def ApplyDecoratorsToFunction(func, decorators):
def MakeInlineTest(__file, __globals, decorators=None):
+ # Adjust the filename if it ends in .pyc. We want filenames to
+ # reflect the source python file, not the compiled variant.
+ if __file is not None and __file.endswith(".pyc"):
+ # Strip the trailing "c"
+ __file = __file[0:-1]
+
# Derive the test name from the current file name
file_basename = os.path.basename(__file)
InlineTest.mydir = TestBase.compute_mydir(__file)
@@ -205,7 +211,8 @@ def MakeInlineTest(__file, __globals, decorators=None):
# Add the test case to the globals, and hide InlineTest
__globals.update({test_name : test})
- # Store the name of the originating file.o
+ # Keep track of the original test filename so we report it
+ # correctly in test results.
test.test_filename = __file
return test
diff --git a/lldb/packages/Python/lldbsuite/test/result_formatter.py b/lldb/packages/Python/lldbsuite/test/result_formatter.py
index 5a783178ddf..4ad39db3e43 100644
--- a/lldb/packages/Python/lldbsuite/test/result_formatter.py
+++ b/lldb/packages/Python/lldbsuite/test/result_formatter.py
@@ -64,7 +64,7 @@ def create_results_formatter(config):
def create_socket(port):
"""Creates a socket to the localhost on the given port.
- @param port the port number of the listenering port on
+ @param port the port number of the listening port on
the localhost.
@return (socket object, socket closing function)
@@ -243,6 +243,13 @@ class EventBuilder(object):
return event
@staticmethod
+ def _assert_is_python_sourcefile(test_filename):
+ if test_filename is not None:
+ if not test_filename.endswith(".py"):
+ raise Exception("source python filename has unexpected extension: {}".format(test_filename))
+ return test_filename
+
+ @staticmethod
def _event_dictionary_common(test, event_type):
"""Returns an event dictionary setup with values for the given event type.
@@ -257,9 +264,9 @@ class EventBuilder(object):
# Determine the filename for the test case. If there is an attribute
# for it, use it. Otherwise, determine from the TestCase class path.
if hasattr(test, "test_filename"):
- test_filename = test.test_filename
+ test_filename = EventBuilder._assert_is_python_sourcefile(test.test_filename)
else:
- test_filename = inspect.getsourcefile(test.__class__)
+ test_filename = EventBuilder._assert_is_python_sourcefile(inspect.getsourcefile(test.__class__))
event = EventBuilder.bare_event(event_type)
event.update({
@@ -498,7 +505,7 @@ class EventBuilder(object):
if exception_description is not None:
event["exception_description"] = exception_description
if test_filename is not None:
- event["test_filename"] = test_filename
+ event["test_filename"] = EventBuilder._assert_is_python_sourcefile(test_filename)
if command_line is not None:
event["command_line"] = command_line
return event
@@ -522,7 +529,7 @@ class EventBuilder(object):
if worker_index is not None:
event["worker_index"] = int(worker_index)
if test_filename is not None:
- event["test_filename"] = test_filename
+ event["test_filename"] = EventBuilder._assert_is_python_sourcefile(test_filename)
if command_line is not None:
event["command_line"] = command_line
return event
OpenPOWER on IntegriCloud