zturner created this revision.
zturner added a reviewer: tfiala.
zturner added a subscriber: lldb-commits.
This patch disables the ability to run
`packages/Python/lldbsuite/test/dotest.py` as a standalone script by explicitly
erroring out if it detects that to be the case. Then, it fixes up the place
where `dosep` exec's the script to actually exect the main script that we're
running from, instead of hardcoding a path to `dotest.py`, which is now wrong
in the presence of being imported as a package.
http://reviews.llvm.org/D14157
Files:
packages/Python/lldbsuite/test/dosep.py
packages/Python/lldbsuite/test/dotest.py
Index: packages/Python/lldbsuite/test/dotest.py
===================================================================
--- packages/Python/lldbsuite/test/dotest.py
+++ packages/Python/lldbsuite/test/dotest.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
"""
A simple testing framework for lldb using python's unit testing framework.
@@ -2036,4 +2034,5 @@
exitTestSuite(failed)
if __name__ == "__main__":
- run_suite()
\ No newline at end of file
+ print(__file__ + " is for use as a module only. It should not be run as a
standalone script.")
+ sys.exit(-1)
Index: packages/Python/lldbsuite/test/dosep.py
===================================================================
--- packages/Python/lldbsuite/test/dosep.py
+++ packages/Python/lldbsuite/test/dosep.py
@@ -279,11 +279,12 @@
return process_driver.results
-def process_dir(root, files, test_root, dotest_argv, inferior_pid_events):
+def process_dir(root, files, dotest_argv, inferior_pid_events):
"""Examine a directory for tests, and invoke any found within it."""
results = []
for name in files:
- script_file = os.path.join(test_root, "dotest.py")
+ import __main__ as main
+ script_file = main.__file__
command = ([sys.executable, script_file] +
dotest_argv +
["--inferior", "-p", name, root])
@@ -966,7 +967,7 @@
test_work_items = []
find_test_files_in_dir_tree(
test_subdir, lambda testdir, test_files: test_work_items.append([
- test_subdir, test_files, test_directory, dotest_argv, None]))
+ test_subdir, test_files, dotest_argv, None]))
# Convert test work items into test results using whatever
# was provided as the test run function.
Index: packages/Python/lldbsuite/test/dotest.py
===================================================================
--- packages/Python/lldbsuite/test/dotest.py
+++ packages/Python/lldbsuite/test/dotest.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
"""
A simple testing framework for lldb using python's unit testing framework.
@@ -2036,4 +2034,5 @@
exitTestSuite(failed)
if __name__ == "__main__":
- run_suite()
\ No newline at end of file
+ print(__file__ + " is for use as a module only. It should not be run as a standalone script.")
+ sys.exit(-1)
Index: packages/Python/lldbsuite/test/dosep.py
===================================================================
--- packages/Python/lldbsuite/test/dosep.py
+++ packages/Python/lldbsuite/test/dosep.py
@@ -279,11 +279,12 @@
return process_driver.results
-def process_dir(root, files, test_root, dotest_argv, inferior_pid_events):
+def process_dir(root, files, dotest_argv, inferior_pid_events):
"""Examine a directory for tests, and invoke any found within it."""
results = []
for name in files:
- script_file = os.path.join(test_root, "dotest.py")
+ import __main__ as main
+ script_file = main.__file__
command = ([sys.executable, script_file] +
dotest_argv +
["--inferior", "-p", name, root])
@@ -966,7 +967,7 @@
test_work_items = []
find_test_files_in_dir_tree(
test_subdir, lambda testdir, test_files: test_work_items.append([
- test_subdir, test_files, test_directory, dotest_argv, None]))
+ test_subdir, test_files, dotest_argv, None]))
# Convert test work items into test results using whatever
# was provided as the test run function.
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits