zturner created this revision.
zturner added reviewers: clayborg, tfiala.
zturner added a subscriber: lldb-commits.
See the thread in lldb-dev for context.
After this patch, the remaining piece of work is to literally move `lldb/test`
to `lldb/packages/Python/lldbsuite/test` and apply 1 or 2 fixups at places
marked in this patch.
http://reviews.llvm.org/D14131
Files:
packages/Python/lldbsuite/__init__.py
packages/Python/lldbsuite/test/__init__.py
test/dosep.py
test/dotest.py
test/use_lldb_suite.py
use_lldb_suite_root.py
Index: use_lldb_suite_root.py
===================================================================
--- use_lldb_suite_root.py
+++ use_lldb_suite_root.py
@@ -11,5 +11,12 @@
for module_dir in module_dirs:
module_dir = os.path.join(third_party_modules_dir, module_dir)
sys.path.insert(0, module_dir)
+
+def add_lldbsuite_packages_dir(lldb_root):
+ packages_dir = os.path.join(lldb_root, "packages", "Python")
+ sys.path.insert(0, packages_dir)
+
lldb_root = os.path.dirname(inspect.getfile(inspect.currentframe()))
+
add_third_party_module_dirs(lldb_root)
+add_lldbsuite_packages_dir(lldb_root)
Index: test/use_lldb_suite.py
===================================================================
--- test/use_lldb_suite.py
+++ test/use_lldb_suite.py
@@ -19,4 +19,4 @@
import imp
module = imp.find_module("use_lldb_suite_root", [lldb_root])
if module is not None:
- imp.load_module("use_lldb_suite_root", *module)
\ No newline at end of file
+ imp.load_module("use_lldb_suite_root", *module)
Index: test/dotest.py
===================================================================
--- test/dotest.py
+++ test/dotest.py
@@ -1048,6 +1048,8 @@
# Set up the LLDB_SRC environment variable, so that the tests can locate
# the LLDB source code.
+ # When this changes over to a package instead of a standalone script, this
+ # will be `lldbsuite.lldb_root`
os.environ["LLDB_SRC"] = os.path.join(scriptPath, os.pardir)
pluginPath = os.path.join(scriptPath, 'plugins')
@@ -1063,6 +1065,8 @@
# to "import lldbgdbserverutils" from the lldb-server tests
# This is the root of the lldb git/svn checkout
+ # When this changes over to a package instead of a standalone script, this
+ # will be `lldbsuite.lldb_root`
lldbRootDirectory = os.path.abspath(os.path.join(scriptPath, os.pardir))
# Some of the tests can invoke the 'lldb' command directly.
@@ -1294,6 +1298,7 @@
def disabledynamics():
+ import lldb
ci = lldb.DBG.GetCommandInterpreter()
res = lldb.SBCommandReturnObject()
ci.HandleCommand("setting set target.prefer-dynamic-value no-dynamic-values", res, False)
@@ -1301,6 +1306,7 @@
raise Exception('disabling dynamic type support failed')
def lldbLoggings():
+ import lldb
"""Check and do lldb loggings if necessary."""
# Turn on logging for debugging purposes if ${LLDB_LOG} environment variable is
@@ -1366,6 +1372,7 @@
sys.exit(0)
def exitTestSuite(exitCode = None):
+ import lldb
lldb.SBDebugger.Terminate()
if exitCode:
sys.exit(exitCode)
@@ -1378,7 +1385,58 @@
# test runner
return not (is_inferior_test_runner or no_multiprocess_test_runner)
-if __name__ == "__main__":
+def run_suite():
+ global just_do_benchmarks_test
+ global dont_do_dsym_test
+ global dont_do_dwarf_test
+ global dont_do_dwo_test
+ global blacklist
+ global blacklistConfig
+ global categoriesList
+ global validCategories
+ global useCategories
+ global skipCategories
+ global lldbFrameworkPath
+ global configFile
+ global archs
+ global compilers
+ global count
+ global dumpSysPath
+ global bmExecutable
+ global bmBreakpointSpec
+ global bmIterationCount
+ global failed
+ global failfast
+ global filters
+ global fs4all
+ global ignore
+ global progress_bar
+ global runHooks
+ global skip_build_and_cleanup
+ global skip_long_running_test
+ global noHeaders
+ global parsable
+ global regexp
+ global rdir
+ global sdir_name
+ global svn_silent
+ global verbose
+ global testdirs
+ global lldb_platform_name
+ global lldb_platform_url
+ global lldb_platform_working_dir
+ global setCrashInfoHook
+ global is_inferior_test_runner
+ global multiprocess_test_subdir
+ global num_threads
+ global output_on_success
+ global no_multiprocess_test_runner
+ global test_runner_name
+ global results_filename
+ global results_formatter_name
+ global results_formatter_options
+ global results_port
+
# On MacOS X, check to make sure that domain for com.apple.DebugSymbols defaults
# does not exist before proceeding to running the test suite.
if sys.platform.startswith("darwin"):
@@ -1976,3 +2034,6 @@
# Exiting.
exitTestSuite(failed)
+
+if __name__ == "__main__":
+ run_suite()
\ No newline at end of file
Index: test/dosep.py
===================================================================
--- test/dosep.py
+++ test/dosep.py
@@ -1205,7 +1205,7 @@
# every dotest invocation from creating its own directory
import datetime
# The windows platforms don't like ':' in the pathname.
- timestamp_started = datetime.datetime.now().strftime("%F-%H_%M_%S")
+ timestamp_started = datetime.datetime.now().strftime("%Y-%m-%d-%H_%M_%S")
dotest_argv.append('-s')
dotest_argv.append(timestamp_started)
dotest_options.s = timestamp_started
Index: packages/Python/lldbsuite/test/__init__.py
===================================================================
--- /dev/null
+++ packages/Python/lldbsuite/test/__init__.py
@@ -0,0 +1,20 @@
+# Module level initialization for the `lldbsuite` module.
+
+import inspect
+import os
+import sys
+
+def find_lldb_root():
+ lldb_root = os.path.dirname(inspect.getfile(inspect.currentframe()))
+ while True:
+ lldb_root = os.path.dirname(lldb_root)
+ if lldb_root is None:
+ return None
+
+ test_path = os.path.join(lldb_root, "lldb.root")
+ if os.path.isfile(test_path):
+ return lldb_root
+ return None
+
+# lldbsuite.lldb_root refers to the root of the git/svn source checkout
+lldb_root = find_lldb_root()
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits