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

Reply via email to