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 lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits