Update every test to import `lldb_shared`.

This is necessary in order to allow third party modules to be
located under lldb/third_party rather than under the test
folder directly.

Since we're already touching every test file anyway, we also
go ahead and delete the unittest2 import and main block wherever
possible.  The ability to run a test as a standalone file has
already been broken for some time, and if we decide we want this
back, we should use unittest instead of unittest2.

A few places could not have the import of unittest2 removed,because
they depend on the unittest2.expectedFailure or skip decorators.
Removing all those was orthogonal in spirit to the purpose of this
CL, so the import of unittest2 remains in those files that were
using it for its test decorators.  Those can be addressed
separately.

llvm-svn: 251055
diff --git a/lldb/test/android/platform/TestDefaultCacheLineSize.py b/lldb/test/android/platform/TestDefaultCacheLineSize.py
index f0cdab8..2cc209b 100644
--- a/lldb/test/android/platform/TestDefaultCacheLineSize.py
+++ b/lldb/test/android/platform/TestDefaultCacheLineSize.py
@@ -2,8 +2,9 @@
 Verify the default cache line size for android targets
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -33,9 +34,3 @@
         # Run to completion.
         process.Continue()
         self.assertEqual(process.GetState(), lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py b/lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py
index 46e554f..95f4bc9 100644
--- a/lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py
+++ b/lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py
@@ -6,7 +6,6 @@
 import lldb_shared
 
 import os, re
-import unittest2
 from lldbtest import *
 import lldbutil
 
@@ -87,9 +86,3 @@
                        'stop reason = breakpoint'])
 
         self.runCmd('frame variable')
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/api/multiple-debuggers/TestMultipleDebuggers.py b/lldb/test/api/multiple-debuggers/TestMultipleDebuggers.py
index 369a6b1..d25ee10 100644
--- a/lldb/test/api/multiple-debuggers/TestMultipleDebuggers.py
+++ b/lldb/test/api/multiple-debuggers/TestMultipleDebuggers.py
@@ -3,7 +3,6 @@
 import lldb_shared
 
 import os, re
-import unittest2
 from lldbtest import *
 import lldbutil
 import lldb
@@ -46,9 +45,3 @@
         else:
             with open(os.devnull, 'w') as fnull:
                 check_call([self.driver_exe, self.inferior_exe], env=env, stdout=fnull, stderr=fnull)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/api/multithreaded/TestMultithreaded.py b/lldb/test/api/multithreaded/TestMultithreaded.py
index e7be1f3..2731a49 100644
--- a/lldb/test/api/multithreaded/TestMultithreaded.py
+++ b/lldb/test/api/multithreaded/TestMultithreaded.py
@@ -3,7 +3,6 @@
 import lldb_shared
 
 import os, re
-import unittest2
 from lldbtest import *
 import lldbutil
 import subprocess
@@ -91,9 +90,3 @@
 
     def build_program(self, sources, program):
         return self.buildDriver(sources, program)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/arm_emulation/TestEmulations.py b/lldb/test/arm_emulation/TestEmulations.py
index 0bd36f0..ec37760 100644
--- a/lldb/test/arm_emulation/TestEmulations.py
+++ b/lldb/test/arm_emulation/TestEmulations.py
@@ -2,8 +2,9 @@
 Test some ARM instruction emulation.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -49,10 +50,3 @@
             print output
 
         self.assertTrue (success, 'Emulation test succeeded.')
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/benchmarks/continue/TestBenchmarkContinue.py b/lldb/test/benchmarks/continue/TestBenchmarkContinue.py
index c4d0de3..83674c6 100644
--- a/lldb/test/benchmarks/continue/TestBenchmarkContinue.py
+++ b/lldb/test/benchmarks/continue/TestBenchmarkContinue.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbbench import *
 import lldbutil
@@ -61,9 +62,3 @@
             lldbutil_sw.stop()
             
         print "runCmd: %s\nlldbutil: %s" % (runCmd_sw,lldbutil_sw)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/disassembly/TestDisassembly.py b/lldb/test/benchmarks/disassembly/TestDisassembly.py
index 83ed72e..b514819 100644
--- a/lldb/test/benchmarks/disassembly/TestDisassembly.py
+++ b/lldb/test/benchmarks/disassembly/TestDisassembly.py
@@ -1,7 +1,8 @@
 """Disassemble lldb's Driver::MainLoop() functions comparing lldb against gdb."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -151,10 +152,3 @@
         if self.TraceOn():
             print "gdb disassembly benchmark:", str(self.stopwatch)
         self.child = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py b/lldb/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py
index 0f06497..a93a406 100644
--- a/lldb/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py
+++ b/lldb/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py
@@ -2,8 +2,9 @@
 inferior and traverses the stack for thread0 to arrive at frame with function
 'MainLoop'.  It is important to specify an lldb executable as the inferior."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -66,10 +67,3 @@
             with self.stopwatch:
                 # Disassemble the function.
                 self.runCmd("disassemble -f")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py b/lldb/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py
index ff79866..393119e 100644
--- a/lldb/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py
+++ b/lldb/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py
@@ -1,7 +1,8 @@
 """Disassemble lldb's Driver::MainLoop() functions comparing Xcode 4.1 vs. 4.2's gdb."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -90,10 +91,3 @@
         if self.TraceOn():
             print "gdb disassembly benchmark:", str(self.stopwatch)
         self.child = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/expression/TestExpressionCmd.py b/lldb/test/benchmarks/expression/TestExpressionCmd.py
index a9d2649..aa7b03f 100644
--- a/lldb/test/benchmarks/expression/TestExpressionCmd.py
+++ b/lldb/test/benchmarks/expression/TestExpressionCmd.py
@@ -1,7 +1,8 @@
 """Test lldb's expression evaluations and collect statistics."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -68,10 +69,3 @@
                 pass
 
         self.child = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/expression/TestRepeatedExprs.py b/lldb/test/benchmarks/expression/TestRepeatedExprs.py
index ad8f963..9efbec6 100644
--- a/lldb/test/benchmarks/expression/TestRepeatedExprs.py
+++ b/lldb/test/benchmarks/expression/TestRepeatedExprs.py
@@ -1,7 +1,8 @@
 """Test evaluating expressions repeatedly comparing lldb against gdb."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -126,10 +127,3 @@
         if self.TraceOn():
             print "gdb expression benchmark:", str(self.stopwatch)
         self.child = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/frame_variable/TestFrameVariableResponse.py b/lldb/test/benchmarks/frame_variable/TestFrameVariableResponse.py
index b3eb7b6..ff55ecd 100644
--- a/lldb/test/benchmarks/frame_variable/TestFrameVariableResponse.py
+++ b/lldb/test/benchmarks/frame_variable/TestFrameVariableResponse.py
@@ -1,7 +1,8 @@
 """Test lldb's response time for 'frame variable' command."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -72,10 +73,3 @@
         # The test is about to end and if we come to here, the child process has
         # been terminated.  Mark it so.
         self.child = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/startup/TestStartupDelays.py b/lldb/test/benchmarks/startup/TestStartupDelays.py
index 802a885..b921906 100644
--- a/lldb/test/benchmarks/startup/TestStartupDelays.py
+++ b/lldb/test/benchmarks/startup/TestStartupDelays.py
@@ -1,7 +1,8 @@
 """Test lldb's startup delays creating a target, setting a breakpoint, and run to breakpoint stop."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -82,10 +83,3 @@
         # The test is about to end and if we come to here, the child process has
         # been terminated.  Mark it so.
         self.child = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/stepping/TestRunHooksThenSteppings.py b/lldb/test/benchmarks/stepping/TestRunHooksThenSteppings.py
index 623e2c0..71017eb 100644
--- a/lldb/test/benchmarks/stepping/TestRunHooksThenSteppings.py
+++ b/lldb/test/benchmarks/stepping/TestRunHooksThenSteppings.py
@@ -1,7 +1,8 @@
 """Test lldb's stepping speed."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -59,10 +60,3 @@
             pass
 
         self.child = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/stepping/TestSteppingSpeed.py b/lldb/test/benchmarks/stepping/TestSteppingSpeed.py
index 7aa84c6..553933f 100644
--- a/lldb/test/benchmarks/stepping/TestSteppingSpeed.py
+++ b/lldb/test/benchmarks/stepping/TestSteppingSpeed.py
@@ -1,7 +1,8 @@
 """Test lldb's stepping speed."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -71,10 +72,3 @@
             pass
 
         self.child = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py b/lldb/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py
index ab57a70..c359ab2 100644
--- a/lldb/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py
+++ b/lldb/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py
@@ -1,7 +1,8 @@
 """Benchmark the turnaround time starting a debugger and run to the breakpont with lldb vs. gdb."""
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbbench import *
 
@@ -116,10 +117,3 @@
 
         self.gdb_avg = self.stopwatch.avg()
         self.child = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/driver/batch_mode/TestBatchMode.py b/lldb/test/driver/batch_mode/TestBatchMode.py
index 733cfe6..bd0f3fa 100644
--- a/lldb/test/driver/batch_mode/TestBatchMode.py
+++ b/lldb/test/driver/batch_mode/TestBatchMode.py
@@ -2,13 +2,10 @@
 Test that the lldb driver's batch mode works correctly.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
-try:
-    import pexpect
-except:
-    pexpect = None
 from lldbtest import *
 
 class DriverBatchModeTest (TestBase):
@@ -31,6 +28,7 @@
         self.source = 'main.c'
 
     def expect_string (self, string):
+        import pexpect
         """This expects for "string", with timeout & EOF being test fails."""
         try:
             self.child.expect_exact(string)
@@ -40,6 +38,7 @@
             self.fail ("Timed out waiting for '%s'"%(string))
 
     def batch_mode (self):
+        import pexpect
         exe = os.path.join(os.getcwd(), "a.out")
         prompt = "(lldb) "
 
diff --git a/lldb/test/expression_command/call-function/TestCallStdStringFunction.py b/lldb/test/expression_command/call-function/TestCallStdStringFunction.py
index ca09285..736af5b 100644
--- a/lldb/test/expression_command/call-function/TestCallStdStringFunction.py
+++ b/lldb/test/expression_command/call-function/TestCallStdStringFunction.py
@@ -2,7 +2,8 @@
 Test calling std::String member functions.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -38,9 +39,3 @@
         # const char *, and thus don't invoke the Summary formatter.
         self.expect("print str.c_str()",
             substrs = ['Hello world'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/call-function/TestCallStopAndContinue.py b/lldb/test/expression_command/call-function/TestCallStopAndContinue.py
index 1f34ad3..10a4c21 100644
--- a/lldb/test/expression_command/call-function/TestCallStopAndContinue.py
+++ b/lldb/test/expression_command/call-function/TestCallStopAndContinue.py
@@ -2,7 +2,8 @@
 Test calling a function, stopping in the call, continue and gather the result on stop.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -41,9 +42,3 @@
         self.expect ("thread list",
                      substrs = ['stop reason = User Expression thread plan',
                                 r'Completed expression: (Five) $0 = (number = 5, name = "five")'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/call-function/TestCallUserDefinedFunction.py b/lldb/test/expression_command/call-function/TestCallUserDefinedFunction.py
index c71f901..c9a1db2 100644
--- a/lldb/test/expression_command/call-function/TestCallUserDefinedFunction.py
+++ b/lldb/test/expression_command/call-function/TestCallUserDefinedFunction.py
@@ -7,7 +7,8 @@
 
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -47,10 +48,3 @@
         # Test function with pointer paramter
         self.expect("exp stringCompare((const char*) \"Hello world\")", substrs = ['$4 = true'])
         self.expect("exp stringCompare((const char*) \"Hellworld\")", substrs = ['$5 = false'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/call-restarts/TestCallThatRestarts.py b/lldb/test/expression_command/call-restarts/TestCallThatRestarts.py
index 289341e..f5480c2 100644
--- a/lldb/test/expression_command/call-restarts/TestCallThatRestarts.py
+++ b/lldb/test/expression_command/call-restarts/TestCallThatRestarts.py
@@ -2,7 +2,8 @@
 Test calling a function that hits a signal set to auto-restart, make sure the call completes.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -134,9 +135,3 @@
         
         frame = self.thread.GetFrameAtIndex(0)
         self.assertTrue (frame.GetPC() == self.orig_frame_pc, "Continuing returned to the place we started.")
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/call-throws/TestCallThatThrows.py b/lldb/test/expression_command/call-throws/TestCallThatThrows.py
index 7d99d05..e5ac994 100644
--- a/lldb/test/expression_command/call-throws/TestCallThatThrows.py
+++ b/lldb/test/expression_command/call-throws/TestCallThatThrows.py
@@ -2,7 +2,8 @@
 Test calling a function that throws an ObjC exception, make sure that it doesn't propagate the exception.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -107,9 +108,3 @@
 
         self.assertTrue (value.IsValid() and value.GetError().Success() == False)
         self.check_after_call()
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/char/TestExprsChar.py b/lldb/test/expression_command/char/TestExprsChar.py
index 0a8319f..c574518 100644
--- a/lldb/test/expression_command/char/TestExprsChar.py
+++ b/lldb/test/expression_command/char/TestExprsChar.py
@@ -1,4 +1,5 @@
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -64,9 +65,3 @@
     @expectedFailureWindows("llvm.org/pr21765")
     def test_unsigned_char(self):
         self.do_test(dictionary={'CFLAGS_EXTRAS': '-funsigned-char'})
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py b/lldb/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py
index c8a97c7..4d1ba4b 100644
--- a/lldb/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py
+++ b/lldb/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py
@@ -1,7 +1,8 @@
 """Test that we are able to evaluate expressions when the inferior is blocked in a syscall"""
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -77,9 +78,3 @@
 
         self.assertEqual(process.GetState(), lldb.eStateExited)
         self.assertEqual(process.GetExitStatus(), 0)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/formatters/TestFormatters.py b/lldb/test/expression_command/formatters/TestFormatters.py
index 12cf3e1..a86961a 100644
--- a/lldb/test/expression_command/formatters/TestFormatters.py
+++ b/lldb/test/expression_command/formatters/TestFormatters.py
@@ -2,7 +2,8 @@
 Test using LLDB data formatters with frozen objects coming from the expression parser.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -162,9 +163,3 @@
         self.assertTrue(a_data.GetUnsignedInt32(error, 8) == 3, 'numbers[2] == 3')
         self.assertTrue(a_data.GetUnsignedInt32(error, 12) == 4, 'numbers[3] == 4')
         self.assertTrue(a_data.GetUnsignedInt32(error, 16) == 5, 'numbers[4] == 5')
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/issue_11588/Test11588.py b/lldb/test/expression_command/issue_11588/Test11588.py
index be631ed..d1793c3 100644
--- a/lldb/test/expression_command/issue_11588/Test11588.py
+++ b/lldb/test/expression_command/issue_11588/Test11588.py
@@ -4,8 +4,9 @@
 expected in a SyntheticChildrenProvider
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -72,10 +73,3 @@
                     "load_address = ",
                     hex(addr)[2:].rstrip("L"),
                     str(addr)])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/options/TestExprOptions.py b/lldb/test/expression_command/options/TestExprOptions.py
index ae9dcf6..18394ef 100644
--- a/lldb/test/expression_command/options/TestExprOptions.py
+++ b/lldb/test/expression_command/options/TestExprOptions.py
@@ -7,8 +7,9 @@
   Test expression command options.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -71,9 +72,3 @@
         val = frame.EvaluateExpression('foo != nullptr', options)
         self.assertTrue(val.IsValid())
         self.assertFalse(val.GetError().Success())
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py b/lldb/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py
index f58ccc1..a179205 100644
--- a/lldb/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py
+++ b/lldb/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py
@@ -2,7 +2,8 @@
 Test that we can p *objcObject
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -45,9 +46,3 @@
         '_sc_name6 = nil',
         '_sc_name7 = nil',
         '_sc_name8 = nil'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py b/lldb/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py
index 6ea706a..312d9de 100644
--- a/lldb/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py
+++ b/lldb/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py
@@ -2,7 +2,8 @@
 Test that we can have persistent pointer variables
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -36,9 +37,3 @@
         self.runCmd("continue")
         
         self.expect("expr $foo", substrs=['$foo','0x0'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/persistent_types/TestNestedPersistentTypes.py b/lldb/test/expression_command/persistent_types/TestNestedPersistentTypes.py
index b926905..4fd3483 100644
--- a/lldb/test/expression_command/persistent_types/TestNestedPersistentTypes.py
+++ b/lldb/test/expression_command/persistent_types/TestNestedPersistentTypes.py
@@ -2,8 +2,9 @@
 Test that nested persistent types work.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -36,9 +37,3 @@
 
         self.expect("expression $my_bar.end.b",
                     substrs = ['(int)', '5'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/persistent_types/TestPersistentTypes.py b/lldb/test/expression_command/persistent_types/TestPersistentTypes.py
index 7f0eb64..0ced770 100644
--- a/lldb/test/expression_command/persistent_types/TestPersistentTypes.py
+++ b/lldb/test/expression_command/persistent_types/TestPersistentTypes.py
@@ -2,8 +2,9 @@
 Test that lldb persistent types works correctly.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -52,10 +53,3 @@
 
         self.expect("expression struct A { int x; int y; }; struct { struct A a; int z; } object; object.a.y = 1; object.z = 3; object.a.x = 2; object",
                     substrs = ['x = 2', 'y = 1', 'z = 3'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/persistent_variables/TestPersistentVariables.py b/lldb/test/expression_command/persistent_variables/TestPersistentVariables.py
index 77d1c25..3a10a98 100644
--- a/lldb/test/expression_command/persistent_variables/TestPersistentVariables.py
+++ b/lldb/test/expression_command/persistent_variables/TestPersistentVariables.py
@@ -2,8 +2,9 @@
 Test that lldb persistent variables works correctly.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -49,9 +50,3 @@
 
         self.expect("expression (long)$4",
             startstr = "(long) $6 = -2")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/po_verbosity/TestPoVerbosity.py b/lldb/test/expression_command/po_verbosity/TestPoVerbosity.py
index 2a9ed7c..829b35d 100644
--- a/lldb/test/expression_command/po_verbosity/TestPoVerbosity.py
+++ b/lldb/test/expression_command/po_verbosity/TestPoVerbosity.py
@@ -2,7 +2,8 @@
 Test that the po command acts correctly.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -56,10 +57,3 @@
 
         self.expect("expr -O -v -- 22",
             substrs = ['(int) $', ' = 22'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/radar_8638051/Test8638051.py b/lldb/test/expression_command/radar_8638051/Test8638051.py
index fa1f175..2cff7fe 100644
--- a/lldb/test/expression_command/radar_8638051/Test8638051.py
+++ b/lldb/test/expression_command/radar_8638051/Test8638051.py
@@ -2,8 +2,9 @@
 Test the robustness of lldb expression parser.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -34,10 +35,3 @@
         self.expect("expression &val",
             startstr = "(int *) $2 = ")
         # (int *) $2 = 0x....
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/radar_9531204/TestPrintfAfterUp.py b/lldb/test/expression_command/radar_9531204/TestPrintfAfterUp.py
index 0a1a9b8..31d120f 100644
--- a/lldb/test/expression_command/radar_9531204/TestPrintfAfterUp.py
+++ b/lldb/test/expression_command/radar_9531204/TestPrintfAfterUp.py
@@ -2,8 +2,9 @@
 The evaluating printf(...) after break stop and then up a stack frame.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -37,10 +38,3 @@
 
         # This does not currently.
         self.runCmd('expression (int)printf("argc is: %d.\\n", argc)')
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/radar_9673664/TestExprHelpExamples.py b/lldb/test/expression_command/radar_9673664/TestExprHelpExamples.py
index 58f0455..c412bce 100644
--- a/lldb/test/expression_command/radar_9673664/TestExprHelpExamples.py
+++ b/lldb/test/expression_command/radar_9673664/TestExprHelpExamples.py
@@ -2,8 +2,9 @@
 Test example snippets from the lldb 'help expression' output.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -36,10 +37,3 @@
             substrs = ["'f'"])
         # runCmd: expr char c[] = "foo"; c[0]
         # output: (char) $0 = 'f'
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/test/TestExprs.py b/lldb/test/expression_command/test/TestExprs.py
index 3545e34..12bdfa2 100644
--- a/lldb/test/expression_command/test/TestExprs.py
+++ b/lldb/test/expression_command/test/TestExprs.py
@@ -11,8 +11,11 @@
   Throw some expression commands with quotes at lldb.
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+
+import os, time
 import lldb
 import lldbutil
 from lldbtest import *
@@ -243,9 +246,3 @@
         self.expect('print_hi',
             substrs = ['(int) $',
                        '6'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/test/TestExprs2.py b/lldb/test/expression_command/test/TestExprs2.py
index 5e52c5e..a2dd98c 100644
--- a/lldb/test/expression_command/test/TestExprs2.py
+++ b/lldb/test/expression_command/test/TestExprs2.py
@@ -2,8 +2,9 @@
 Test some more expression commands.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -55,10 +56,3 @@
         self.expect("expression $4 + 1",
             startstr = "(int) $5 = 24")
         # (int) $5 = 6
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/timeout/TestCallWithTimeout.py b/lldb/test/expression_command/timeout/TestCallWithTimeout.py
index f59cd756..e63cebe 100644
--- a/lldb/test/expression_command/timeout/TestCallWithTimeout.py
+++ b/lldb/test/expression_command/timeout/TestCallWithTimeout.py
@@ -2,7 +2,8 @@
 Test calling a function that waits a while, and make sure the timeout option to expr works.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -87,10 +88,3 @@
         value = frame.EvaluateExpression ("wait_a_while (1000)", options)
         self.assertTrue(value.IsValid())
         self.assertTrue (value.GetError().Success() == True)
-        
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py b/lldb/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
index 8279a756..93c8218 100644
--- a/lldb/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
+++ b/lldb/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
@@ -4,7 +4,8 @@
 The expression parser's type search only looks in the current compilation unit for types.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 from lldbtest import *
 import lldbutil
@@ -34,10 +35,3 @@
         self.expect("expression (NSArray*)array_token",
             substrs = ['(NSArray *) $0 = 0x'])
         # (NSArray *) $0 = 0x00007fff70118398
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/abbreviation/TestAbbreviations.py b/lldb/test/functionalities/abbreviation/TestAbbreviations.py
index d0bbd15..86268bb 100644
--- a/lldb/test/functionalities/abbreviation/TestAbbreviations.py
+++ b/lldb/test/functionalities/abbreviation/TestAbbreviations.py
@@ -2,8 +2,9 @@
 Test some lldb command abbreviations and aliases for proper resolution.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -96,11 +97,3 @@
         #self.runCmd("se cl prompt")
         #self.expect("set sh prompt",
         #            startstr = 'prompt (string) = "(lldb) "')
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/abbreviation/TestCommonShortSpellings.py b/lldb/test/functionalities/abbreviation/TestCommonShortSpellings.py
index 5f7e84d..d184edc 100644
--- a/lldb/test/functionalities/abbreviation/TestCommonShortSpellings.py
+++ b/lldb/test/functionalities/abbreviation/TestCommonShortSpellings.py
@@ -3,8 +3,9 @@
 many commands remain available even after we add/delete commands in the future.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -33,11 +34,3 @@
             command_interpreter.ResolveCommand(short, result)
             self.assertTrue(result.Succeeded())
             self.assertEqual(long, result.GetOutput())
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/archives/TestBSDArchives.py b/lldb/test/functionalities/archives/TestBSDArchives.py
index 0404e25..9246c5e 100644
--- a/lldb/test/functionalities/archives/TestBSDArchives.py
+++ b/lldb/test/functionalities/archives/TestBSDArchives.py
@@ -1,7 +1,8 @@
 """Test breaking inside functions defined within a BSD archive file libfoo.a."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -52,10 +53,3 @@
             substrs = ['(int) arg = 2'])
         self.expect("frame variable __b_global", VARIABLES_DISPLAYED_CORRECTLY,
             substrs = ['(int) __b_global = 2'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/asan/TestMemoryHistory.py b/lldb/test/functionalities/asan/TestMemoryHistory.py
index 541c1c5..d9334d5 100644
--- a/lldb/test/functionalities/asan/TestMemoryHistory.py
+++ b/lldb/test/functionalities/asan/TestMemoryHistory.py
@@ -2,8 +2,9 @@
 Test that ASan memory history provider returns correct stack traces
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -102,9 +103,3 @@
         self.expect("memory history 'another_pointer'",
             substrs = [
                 'Memory allocated at', 'a.out`f1', 'main.c:%d' % self.line_malloc2])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/asan/TestReportData.py b/lldb/test/functionalities/asan/TestReportData.py
index cfa0141..19e0b61 100644
--- a/lldb/test/functionalities/asan/TestReportData.py
+++ b/lldb/test/functionalities/asan/TestReportData.py
@@ -2,8 +2,9 @@
 Test the AddressSanitizer runtime support for report breakpoint and data extraction.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -78,9 +79,3 @@
         s = s.GetData()
         data2 = json.loads(s)
         self.assertEqual(data, data2)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/attach_resume/TestAttachResume.py b/lldb/test/functionalities/attach_resume/TestAttachResume.py
index c03d7d7..0a5e7f2 100644
--- a/lldb/test/functionalities/attach_resume/TestAttachResume.py
+++ b/lldb/test/functionalities/attach_resume/TestAttachResume.py
@@ -2,8 +2,9 @@
 Test process attach/resume.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -66,9 +67,3 @@
         # make sure to detach while in running state (r204759)
         self.runCmd("detach")
         lldbutil.expect_state_changes(self, listener, [lldb.eStateDetached])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/avoids-fd-leak/TestFdLeak.py b/lldb/test/functionalities/avoids-fd-leak/TestFdLeak.py
index c28221a..abceb6a 100644
--- a/lldb/test/functionalities/avoids-fd-leak/TestFdLeak.py
+++ b/lldb/test/functionalities/avoids-fd-leak/TestFdLeak.py
@@ -2,8 +2,9 @@
 Test whether a process started by lldb has no extra file descriptors open.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -70,10 +71,3 @@
         self.assertTrue(process2.GetState() == lldb.eStateExited, "Process should have exited.")
         self.assertTrue(process2.GetExitStatus() == 0,
                 "Process returned non-zero status. Were incorrect file descriptors passed?")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/backticks/TestBackticksWithoutATarget.py b/lldb/test/functionalities/backticks/TestBackticksWithoutATarget.py
index 7d9be67..d2a6e5c 100644
--- a/lldb/test/functionalities/backticks/TestBackticksWithoutATarget.py
+++ b/lldb/test/functionalities/backticks/TestBackticksWithoutATarget.py
@@ -2,8 +2,9 @@
 Test that backticks without a target should work (not infinite looping).
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -16,9 +17,3 @@
         """A simple test of backticks without a target."""
         self.expect("print `1+2-3`",
             substrs = [' = 0'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py b/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
index d6a9f70..660f463 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
@@ -2,8 +2,9 @@
 Test lldb breakpoint command add/list/delete.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -201,9 +202,3 @@
 
         # Now remove 'output-2.txt'
         os.remove ('output-2.txt')
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py b/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
index c7bc773..0058bff 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
@@ -2,9 +2,10 @@
 Test that you can set breakpoint commands successfully with the Python API's:
 """
 
+import lldb_shared
+
 import os
 import re
-import unittest2
 import lldb, lldbutil
 import sys
 from lldbtest import *
@@ -89,10 +90,3 @@
         self.assertTrue(os.path.isfile("output2.txt"),
                         "'output2.txt' exists due to breakpoint command for breakpoint function.")
         self.RemoveTempFile("output2.txt")
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py b/lldb/test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py
index e5fda67..2e2eac9 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py
@@ -2,8 +2,9 @@
 Test _regexp-break command which uses regular expression matching to dispatch to other built in breakpoint commands.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -46,10 +47,3 @@
         self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
             substrs = ['stopped',
                        'stop reason = breakpoint'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py b/lldb/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py
index 1aa0154..2c30904 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py
@@ -2,9 +2,10 @@
 Test breakpoint conditions with 'breakpoint modify -c <expr> id'.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -172,10 +173,3 @@
         self.assertTrue(breakpoint.GetHitCount() == 1)
 
         process.Continue()
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py b/lldb/test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py
index efab6fb..effd1ef 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py
@@ -2,8 +2,9 @@
 Test lldb breakpoint ids.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -46,10 +47,3 @@
 
         self.expect ("breakpoint enable 2.*",
                      patterns = [ ".* breakpoints enabled."] )
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py b/lldb/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
index 6daa68d..690d35d 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
@@ -2,9 +2,10 @@
 Test breakpoint ignore count features.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -130,10 +131,3 @@
         self.assertTrue(breakpoint.GetHitCount() == 3)
 
         process.Continue()
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py b/lldb/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
index 9e11840..e992df3 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
@@ -2,8 +2,9 @@
 Test breakpoint commands for a breakpoint ID with multiple locations.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -83,10 +84,3 @@
             patterns = ["1\.1: .+ unresolved, hit count = 0 +Options: disabled",
                         "1\.2: .+ resolved, hit count = 1",
                         "1\.3: .+ resolved, hit count = 1"])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py b/lldb/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
index b71fbab..a2545ad 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
@@ -2,8 +2,9 @@
 Test breakpoint command for different options.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -88,9 +89,3 @@
         # We should exit.
         self.expect("process status", "Process exited successfully",
             patterns = ["^Process [0-9]+ exited with status = 0"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py b/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py
index ba2a549..809a794 100644
--- a/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py
+++ b/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py
@@ -1,8 +1,9 @@
 """
 Test breakpoint command with AT_comp_dir set to symbolic link.
 """
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -58,10 +59,3 @@
 
         exe = os.path.join(os.getcwd(), _EXE_NAME)
         self.runCmd('file ' + exe, CURRENT_EXECUTABLE_SET)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py b/lldb/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
index 5f94352..103b38c 100644
--- a/lldb/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
+++ b/lldb/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
@@ -2,6 +2,8 @@
 Test continue from a breakpoint when there is a breakpoint on the next instruction also.
 """
 
+import lldb_shared
+
 import unittest2
 import lldb, lldbutil
 from lldbtest import *
@@ -61,10 +63,3 @@
 
         # Run the process until termination
         process.Continue()
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py b/lldb/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
index 23ccbb5..fb27df1 100644
--- a/lldb/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
+++ b/lldb/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
@@ -2,8 +2,9 @@
 Test lldb breakpoint ids.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -57,11 +58,3 @@
         
         for bp_dict in bp_dicts:
             self.verify_breakpoint_locations(target, bp_dict)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py b/lldb/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
index aa52a2c..e01bdb4 100644
--- a/lldb/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
+++ b/lldb/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
@@ -2,9 +2,10 @@
 Test that you can set breakpoint and hit the C++ language exception breakpoint
 """
 
+import lldb_shared
+
 import os
 import re
-import unittest2
 import lldb, lldbutil
 import sys
 from lldbtest import *
@@ -42,9 +43,3 @@
         
         thread_list = lldbutil.get_threads_stopped_at_breakpoint (process, exception_bkpt)
         self.assertTrue (len(thread_list) == 1, "One thread stopped at the exception breakpoint.")
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py b/lldb/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py
index 65197ed..da62c9d 100644
--- a/lldb/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py
+++ b/lldb/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py
@@ -2,8 +2,9 @@
 Test breakpoint commands set before we have a target
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -62,9 +63,3 @@
         # Stopped again.
         self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT,
             substrs = ["stop reason = breakpoint 2."])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py b/lldb/test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py
index 5681b12..d12b39d 100644
--- a/lldb/test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py
+++ b/lldb/test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py
@@ -3,8 +3,9 @@
 another source file) works correctly.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -52,10 +53,3 @@
             substrs = ['stopped',
                        'stop reason = breakpoint',
                        'basic_type.cpp:%d' % self.line])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py b/lldb/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py
index 6feb31a..b61132d 100644
--- a/lldb/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py
+++ b/lldb/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py
@@ -3,8 +3,9 @@
 parser.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -89,9 +90,3 @@
         
         # Check breakpoints again, this time using the symbol table only
         self.check_category_breakpoints()
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/command_history/TestCommandHistory.py b/lldb/test/functionalities/command_history/TestCommandHistory.py
index 6cca992..3022433 100644
--- a/lldb/test/functionalities/command_history/TestCommandHistory.py
+++ b/lldb/test/functionalities/command_history/TestCommandHistory.py
@@ -2,8 +2,9 @@
 Test the command history mechanism
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -63,10 +64,3 @@
 
         self.expect ("command history -c 1 -e 3 -s 5",error=True, inHistory=True,
                      substrs = ['error: --count, --start-index and --end-index cannot be all specified in the same invocation'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/command_regex/TestCommandRegex.py b/lldb/test/functionalities/command_regex/TestCommandRegex.py
index 93c0aa4..5400b54 100644
--- a/lldb/test/functionalities/command_regex/TestCommandRegex.py
+++ b/lldb/test/functionalities/command_regex/TestCommandRegex.py
@@ -2,8 +2,9 @@
 Test lldb 'commands regex' command which allows the user to create a regular expression command.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -51,9 +52,3 @@
         child.sendline('Help__')
         child.expect_exact("error: 'Help__' is not a valid command")
         child.expect_exact(prompt)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/command_script/TestCommandScript.py b/lldb/test/functionalities/command_script/TestCommandScript.py
index 40d0b69..b8a8916 100644
--- a/lldb/test/functionalities/command_script/TestCommandScript.py
+++ b/lldb/test/functionalities/command_script/TestCommandScript.py
@@ -2,8 +2,9 @@
 Test lldb Python commands.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -137,10 +138,3 @@
         self.runCmd('command script add -f bug11569 bug11569')
         # This should not crash.
         self.runCmd('bug11569', check=False)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/command_script/import/TestImport.py b/lldb/test/functionalities/command_script/import/TestImport.py
index a00db8e..f413bdc 100644
--- a/lldb/test/functionalities/command_script/import/TestImport.py
+++ b/lldb/test/functionalities/command_script/import/TestImport.py
@@ -1,7 +1,8 @@
 """Test custom import command to import files by path."""
 
+import lldb_shared
+
 import os, sys, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -68,10 +69,3 @@
                 substrs = ['barutil says', 'bar told me', 'hello'])
         self.expect("foobarcmd hello",
                 substrs = ['foobar says', 'hello'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py b/lldb/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py
index 1736819..4b19386 100644
--- a/lldb/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py
+++ b/lldb/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py
@@ -1,7 +1,8 @@
 """Check that we handle an ImportError in a special way when command script importing files."""
 
+import lldb_shared
+
 import os, sys, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -26,9 +27,3 @@
                 error=True, substrs = ['raise ImportError("I do not want to be imported")'])
         self.expect("command script import ./fail212586188.py --allow-reload",
                 error=True, substrs = ['raise ValueError("I do not want to be imported")'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/command_source/TestCommandSource.py b/lldb/test/functionalities/command_source/TestCommandSource.py
index 122d4c6..22f8ff7 100644
--- a/lldb/test/functionalities/command_source/TestCommandSource.py
+++ b/lldb/test/functionalities/command_source/TestCommandSource.py
@@ -4,8 +4,9 @@
 See also http://llvm.org/viewvc/llvm-project?view=rev&revision=109673.
 """
 
+import lldb_shared
+
 import os, sys
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -31,10 +32,3 @@
         self.expect(result.GetOutput(), "script my.date() runs successfully",
                     exe=False,
             substrs = [str(datetime.date.today())])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/completion/TestCompletion.py b/lldb/test/functionalities/completion/TestCompletion.py
index fa2c427..f2c5302 100644
--- a/lldb/test/functionalities/completion/TestCompletion.py
+++ b/lldb/test/functionalities/completion/TestCompletion.py
@@ -2,8 +2,9 @@
 Test the lldb command line completion mechanism.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -318,10 +319,3 @@
                 else:
                     self.expect(from_child, msg=COMPLETION_MSG(str_input, p), exe=False,
                         patterns = [p])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/conditional_break/TestConditionalBreak.py b/lldb/test/functionalities/conditional_break/TestConditionalBreak.py
index 4ca3a01..f077bcd 100644
--- a/lldb/test/functionalities/conditional_break/TestConditionalBreak.py
+++ b/lldb/test/functionalities/conditional_break/TestConditionalBreak.py
@@ -2,9 +2,10 @@
 Test conditionally break on a function and inspect its variables.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -128,11 +129,3 @@
         self.runCmd("frame select 1")
         self.expect("frame info", "The immediate caller should be a()",
             substrs = ["a.out`a"])
-
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py b/lldb/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py
index 4464ba0..ed73ccc 100644
--- a/lldb/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py
+++ b/lldb/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -67,10 +68,3 @@
                     substrs = ['YES'])
         self.expect('frame variable no',
                     substrs = ['NO'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py b/lldb/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py
index eeb5ffb..9fd66a0 100644
--- a/lldb/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py
+++ b/lldb/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -53,9 +54,3 @@
                        '(vSInt16) valueS16 = (1, 0, 4, 0, 0, 1, 0, 4)',
                        '(vSInt32) valueS32 = (4, 3, 2, 1)',
                        '(vBool32) valueBool32 = (0, 1, 0, 1)'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py b/lldb/test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
index 97dcb74..f645feb 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -280,10 +281,3 @@
                                'o_2'])
         self.expect('frame variable a_long_guy --show-all-children', matching=False,
                     substrs = ['...'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py b/lldb/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
index 6aa51e0..a367e39 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -321,9 +322,3 @@
         self.expect('frame variable r2',
                     substrs = ['w = 9',
                                'h = 16'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py b/lldb/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
index 259abc0..f2911ec 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -260,9 +261,3 @@
         self.expect("frame variable iAmInt --format hex", substrs = ['(int) iAmInt = 0x00000001'])
         self.expect("frame variable iAmInt", matching=False, substrs = ['(int) iAmInt = 0x00000001'])
         self.expect("frame variable iAmInt", substrs = ['(int) iAmInt = 1'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py b/lldb/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py
index e15f17d..7be7276 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -75,10 +76,3 @@
         # last check - our cleanup will re-enable everything
         self.runCmd('type category disable *')
         self.expect('type category list', substrs = ['system','disabled'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py b/lldb/test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py
index 4c3d390..e004e59 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -60,9 +61,3 @@
             '(int) y = Case45',
             '(int) z = 43'
 	                        ]);
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py b/lldb/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py
index 44ed11b..d81891c 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -62,10 +63,3 @@
         
         self.expect("target variable g_point_pointer",
                     substrs = ['(Point *) g_point_pointer ='])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py b/lldb/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py
index 12f59b7..516c54e 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -117,10 +118,3 @@
         self.expect("frame variable first",matching=False,
             substrs = ['FirstAndFriends: x=12',
                        'y=34'])
-
-                    
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py b/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py
index eced5a1..c7ee9f6 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py
@@ -3,8 +3,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -459,9 +460,3 @@
 
         self.runCmd("continue")
         self.expect("frame variable _cmd",substrs = ['setAtoms:'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py b/lldb/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py
index fb04429..2778035 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py
@@ -3,8 +3,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -102,10 +103,3 @@
         self.expect('po strwithNULs2', substrs=['a very much boring task to write'])
         self.expect('expr [strwithNULs2 length]', substrs=['52'])
         self.expect('frame variable strwithNULs2', substrs=['@"a very much boring task to write\\0a string this way!!'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py b/lldb/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py
index e8b915f..30d1323 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -85,10 +86,3 @@
                     substrs = ['1 byte'])
         self.expect('frame variable immutableData', matching=False,
                     substrs = ['1 bytes'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py b/lldb/test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py
index 172cfdd..84cb74b 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -52,10 +53,3 @@
             substrs = ['01 00 00 00 02 00 00 00 03 00 00 00'])
         self.expect('p *(int (*)[3])foo', matching=False,
             substrs = ['0x000000030000000200000001'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py b/lldb/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
index f6a3e2d..39e363a 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -247,10 +248,3 @@
         self.assertTrue(str_cast.find('T') != -1, 'could not find T in output')
         self.assertTrue(str_cast.find('F') != -1, 'could not find F in output')
         self.assertTrue(str_cast.find("4 = '\\0'") != -1, 'could not find item 4 == 0')
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py b/lldb/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py
index 4eecda4..b025ba0 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -165,10 +166,3 @@
         
         self.expect("frame variable array",
                     substrs = ['Python summary'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py b/lldb/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
index 5ef9257..03e713e 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -170,10 +171,3 @@
                     substrs = ['(DeepData_5) data2.m_child4.m_child2.m_child2 = {',
                                'm_some_text = "Just a test"',
                                '}'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py b/lldb/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py
index e4eb325..bb0e4e5 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -343,10 +344,3 @@
                     substrs = ['intarr = arr = ',
                                '09 00 00 00',
                                '....,07 00 00 00'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
index 7abb6ed..2487844 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -35,9 +36,3 @@
         self.expect("frame variable ils", substrs = ['[4] = "surprise it is a long string!! yay!!"'])
 
         self.expect('image list', substrs = self.getLibcPlusPlusLibs())
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
index 82ff6d1..8781f45 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -61,9 +62,3 @@
 
         self.expect('frame variable svI', substrs = ['item = "hello"'])
         self.expect('expr svI', substrs = ['item = "hello"'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
index 3390ae3..9f7d294 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time, re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -181,9 +182,3 @@
 
         self.assertTrue(countingList.GetChildAtIndex(0).GetValueAsUnsigned(0) == 3141, "uniqued list[0] == 3141")
         self.assertTrue(countingList.GetChildAtIndex(1).GetValueAsUnsigned(0) == 3142, "uniqued list[1] == 3142")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/loop/TestDataFormatterLibcxxListLoop.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/loop/TestDataFormatterLibcxxListLoop.py
index f89369c4c..1681e32 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/loop/TestDataFormatterLibcxxListLoop.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/loop/TestDataFormatterLibcxxListLoop.py
@@ -3,8 +3,9 @@
 corruption).
 """
 
+import lldb_shared
+
 import os, time, re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -48,9 +49,3 @@
         # Run to completion.
         process.Continue()
         self.assertEqual(process.GetState(), lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py
index 25565bf..54406bd 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -293,9 +294,3 @@
         self.expect('frame variable ss',
                     substrs = ['size=0',
                                '{}'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py
index ebd74fb..d7f1f7d 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -293,9 +294,3 @@
         self.expect('frame variable ss',
                     substrs = ['size=0',
                                '{}'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py
index 68d1c9e..da59ee5 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -64,9 +65,3 @@
         self.expect("frame variable ss[2]",substrs = [' = "b"'])
         lldbutil.continue_to_breakpoint(self.process(), bkpt)
         self.expect("frame variable ss",substrs = ["size=3",'[0] = "a"','[1] = "a very long string is right here"','[2] = "c"'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py
index e6ceff9..c775b28 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -64,9 +65,3 @@
         self.expect("frame variable ss[2]",substrs = [' = "b"'])
         lldbutil.continue_to_breakpoint(self.process(), bkpt)
         self.expect("frame variable ss",substrs = ["size=3",'[0] = "a"','[1] = "a very long string is right here"','[2] = "c"'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
index ee050cd..c69bab5 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
@@ -3,8 +3,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -81,9 +82,3 @@
                     '(std::__1::string) Q = "quite a long std::strin with lots of info inside it"',
                     '(std::__1::string) IHaveEmbeddedZeros = "a\\0b\\0c\\0d"',
                     '(std::__1::wstring) IHaveEmbeddedZerosToo = L"hello world!\\0てざ ル゜䋨ミ㠧槊 きゅへ狦穤襩 じゃ馩リョ 䤦監"'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py
index 04caa51..cd8172b 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -70,9 +71,3 @@
     def look_for_content_and_continue(self, var_name, patterns):
         self.expect( ("frame variable %s" % var_name), patterns=patterns)
         self.runCmd("continue")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py
index 92368d1..e4e65ed 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -53,9 +54,3 @@
 
         self.expect("expr vBool",
             substrs = ['size=49','[0] = false','[1] = true','[18] = false','[27] = true','[36] = false','[47] = true','[48] = true'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
index 5cec93e..086972d 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -175,9 +176,3 @@
 
         self.expect("frame variable strings",
             substrs = ['vector has 0 items'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py
index 9b83078..08a89d8 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -58,9 +59,3 @@
 
         self.expect('frame variable svI', substrs = ['item = "hello"'])
         self.expect('expr svI', substrs = ['item = "hello"'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py
index f82caa8..5f8468b 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -184,9 +185,3 @@
 
         # check that MightHaveChildren() gets it right
         self.assertTrue(self.frame().FindVariable("text_list").MightHaveChildren(), "text_list.MightHaveChildren() says False for non empty!")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py
index 0a2cdf1..89be957 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -317,9 +318,3 @@
         self.expect('frame variable ss',
                     substrs = ['map has 0 items',
                                '{}'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
index 1a13571..7f07187 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
@@ -3,8 +3,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -62,9 +63,3 @@
         self.runCmd("next")
 
         self.assertTrue(var_S.GetSummary() == 'L"!!!!!"', "new S summary wrong")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py
index ec34c52..71434ef 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -53,9 +54,3 @@
 
         self.expect("expr vBool",
             substrs = ['size=49','[0] = false','[1] = true','[18] = false','[27] = true','[36] = false','[47] = true','[48] = true'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py
index c268317..30ded55 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -202,9 +203,3 @@
 
         self.expect("frame variable strings",
             substrs = ['vector has 0 items'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py b/lldb/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py
index dc12536..f6bdacc 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -201,10 +202,3 @@
         self.runCmd('type summary add -e -h -s "I am really empty" EmptyStruct')
         self.expect('frame variable es', substrs = ["I am really empty"])
         self.expect('frame variable es', substrs = ["I am really empty {}"], matching=False)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py b/lldb/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
index 65f5733..418083d 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -91,9 +92,3 @@
         self.assertEqual(ma.GetNumChildren(15), 15)
         self.assertEqual(ma.GetNumChildren(16), 16)
         self.assertEqual(ma.GetNumChildren(17), 16)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py b/lldb/test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py
index 6a949ff..471086b 100644
--- a/lldb/test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py
+++ b/lldb/test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py
@@ -2,8 +2,9 @@
 Check if changing Format on an SBValue correctly propagates that new format to children as it should
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -70,9 +71,3 @@
         Y.SetFormat(lldb.eFormatDefault)
         self.assertTrue(X.GetValue() == "0x00000004", "X is not hex as it asked")
         self.assertTrue(Y.GetValue() == "2", "Y is not defaulted")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py b/lldb/test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py
index 1e9008a..ad5ee5a 100644
--- a/lldb/test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py
+++ b/lldb/test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py
@@ -2,8 +2,9 @@
 Test that the user can input a format but it will not prevail over summary format's choices.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -33,9 +34,3 @@
                        'stop reason = breakpoint'])
 
         self.expect("thread list", substrs = ['addPair(p=(x = 3, y = -3))'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py b/lldb/test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py
index dc486c7..909c00f 100644
--- a/lldb/test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py
+++ b/lldb/test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -77,10 +78,3 @@
         self.runCmd("type summary add -s \"${var.first%X} and ${var.second%X}\" foo")
         self.expect('frame variable mine',
                     substrs = ['(foo) mine = 0xAABBCCDD and 0xFF00FF00'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py b/lldb/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py
index 885bec8..3084603 100644
--- a/lldb/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py
+++ b/lldb/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -62,10 +63,3 @@
 
         self.assertTrue(self.frame().FindVariable("arr").MightHaveChildren(), "arr says it does not have children!")
         self.assertTrue(self.frame().FindVariable("other_arr").MightHaveChildren(), "arr says it does not have children!")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py b/lldb/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
index c9454fc..54442f2 100644
--- a/lldb/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
+++ b/lldb/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -64,10 +65,3 @@
 
         self.assertTrue(self.frame().FindVariable("dictionary").MightHaveChildren(), "dictionary says it does not have children!")
         self.assertTrue(self.frame().FindVariable("mutabledict").MightHaveChildren(), "mutable says it does not have children!")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py b/lldb/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
index 1b57f0f..41f7049 100644
--- a/lldb/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
+++ b/lldb/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -69,9 +70,3 @@
                     substrs = ['4 elements'])
         self.expect('frame variable mutable --ptr-depth 1 -d run -T',
                     substrs = ['4 elements','[0]','[1]','[2]','[3]','hello','world','(int)1','(int)2'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/ostypeformatting/TestFormattersOsType.py b/lldb/test/functionalities/data-formatter/ostypeformatting/TestFormattersOsType.py
index afca9bd..b044fc7 100644
--- a/lldb/test/functionalities/data-formatter/ostypeformatting/TestFormattersOsType.py
+++ b/lldb/test/functionalities/data-formatter/ostypeformatting/TestFormattersOsType.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -47,10 +48,3 @@
         # Now check that we use the right summary for OSType
         self.expect('frame variable',
                     substrs = ["'test'","'best'"])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py b/lldb/test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py
index 7bac2cf..88e345c 100644
--- a/lldb/test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py
+++ b/lldb/test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -52,9 +53,3 @@
         # the match.
         self.expect("frame variable y", substrs = ['(Foo &', ') y = 0x','IntLRef'])
         self.expect("frame variable z", substrs = ['(Foo &&', ') z = 0x','IntRRef'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py b/lldb/test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py
index e9927f1..0869ea9 100644
--- a/lldb/test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py
+++ b/lldb/test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py
@@ -2,8 +2,9 @@
 Test that ValueObjectPrinter does not cause an infinite loop when a reference to a struct that contains a pointer to itself is printed.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -36,9 +37,3 @@
         self.expect("frame variable foo --ptr-depth=1", substrs = ['ID = 1']);
         self.expect("frame variable foo --ptr-depth=2", substrs = ['ID = 1']);
         self.expect("frame variable foo --ptr-depth=3", substrs = ['ID = 1']);
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py b/lldb/test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py
index 6dc9e12..4b0ed73 100644
--- a/lldb/test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py
+++ b/lldb/test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -128,10 +129,3 @@
         self.expect('frame variable mine',
                     substrs = ['mine = ',
                                '1', '<parent is NULL>'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py b/lldb/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py
index bf18d44..a4f50cb 100644
--- a/lldb/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py
+++ b/lldb/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py
@@ -2,8 +2,9 @@
 Check for an issue where capping does not work because the Target pointer appears to be changing behind our backs
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -70,9 +71,3 @@
 
         self.expect("frame variable f00_1", matching=True,
                     substrs = ['r = 33']);
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py b/lldb/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py
index 969bc0c..80224cc 100644
--- a/lldb/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py
+++ b/lldb/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -69,10 +70,3 @@
         self.assertFalse(id_x.GetNumChildren() == 7, "dictionary still looks synthetic")
         id_x.SetPreferSyntheticValue(True)
         self.assertTrue(id_x.GetSummary() == "7 key/value pairs", "dictionary does not get correct summary")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py b/lldb/test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py
index 63beed2..8842896 100644
--- a/lldb/test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py
+++ b/lldb/test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py
@@ -2,8 +2,9 @@
 Test that the user can input a format but it will not prevail over summary format's choices.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -54,9 +55,3 @@
 
         self.expect("frame variable p1", substrs = ['(Pair) p1 = x=0x00000003,y=4294967293']);
         self.expect("frame variable -f d p1", substrs = ['(Pair) p1 = x=3,y=-3'],matching=False);
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py b/lldb/test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py
index d3eaa1d..55c6c30 100644
--- a/lldb/test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py
+++ b/lldb/test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -69,9 +70,3 @@
                     substrs = ['(TwoSummarizes) twos = TwoSummarizes @ ',
                                'first = SUMMARY SUCCESS 1',
                                'second = SUMMARY SUCCESS 3'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py b/lldb/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py
index 777dc29..4de0325 100644
--- a/lldb/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py
+++ b/lldb/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -51,9 +52,3 @@
         self.expect("frame variable x", substrs = ['T is a non-pointer type']);
             
         self.expect("frame variable y", substrs = ['T is a pointer type']);
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py b/lldb/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py
index 58a31ce..6235e61 100644
--- a/lldb/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py
+++ b/lldb/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py
@@ -2,8 +2,9 @@
 Check that vector types format properly
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -68,9 +69,3 @@
         v.SetFormat(lldb.eFormatVectorOfFloat32)
         oldValueAgain = v.GetChildAtIndex(0).GetValue()
         self.assertTrue(oldValue == oldValueAgain, "same format but different values")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/dead-strip/TestDeadStrip.py b/lldb/test/functionalities/dead-strip/TestDeadStrip.py
index da74fb0..e614761 100644
--- a/lldb/test/functionalities/dead-strip/TestDeadStrip.py
+++ b/lldb/test/functionalities/dead-strip/TestDeadStrip.py
@@ -2,8 +2,9 @@
 Test that breakpoint works correctly in the presence of dead-code stripping.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -53,10 +54,3 @@
         # The breakpoint should have a hit count of 1.
         self.expect("breakpoint list -f 3", BREAKPOINT_HIT_ONCE,
             substrs = [' resolved, hit count = 1'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/disassembly/TestDisassembleBreakpoint.py b/lldb/test/functionalities/disassembly/TestDisassembleBreakpoint.py
index fe7e3d6..e9ddf12 100644
--- a/lldb/test/functionalities/disassembly/TestDisassembleBreakpoint.py
+++ b/lldb/test/functionalities/disassembly/TestDisassembleBreakpoint.py
@@ -2,8 +2,9 @@
 Test some lldb command abbreviations.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -45,10 +46,3 @@
 
         # make sure a few reasonable assembly instructions are here
         self.expect(disassembly, exe=False, startstr = "a.out`sum", substrs = instructions)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py b/lldb/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py
index e670263..67c4d97 100644
--- a/lldb/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py
+++ b/lldb/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py
@@ -2,9 +2,10 @@
 Test that dynamic values update their child count correctly
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -72,9 +73,3 @@
         self.assertTrue(b.GetNumChildren() != 0, "b now has 1 child")
         self.runCmd("continue")
         self.assertTrue(b.GetNumChildren() == 0, "b didn't go back to 0 children")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/embedded_interpreter/TestConvenienceVariables.py b/lldb/test/functionalities/embedded_interpreter/TestConvenienceVariables.py
index 0f66a3e..c07628b 100644
--- a/lldb/test/functionalities/embedded_interpreter/TestConvenienceVariables.py
+++ b/lldb/test/functionalities/embedded_interpreter/TestConvenienceVariables.py
@@ -1,7 +1,8 @@
 """Test convenience variables when you drop in from lldb prompt into an embedded interpreter."""
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -74,10 +75,3 @@
         child.expect_exact(python_prompt)
         self.expect(child.before, exe=False,
             patterns = ['frame #0: 0x[0-9a-f]+ a\.out`main\(argc=1, argv=0x[0-9a-f]+\) \+ \d+ at main\.c:%d' % self.line])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/exec/TestExec.py b/lldb/test/functionalities/exec/TestExec.py
index c81ebef..7b6ce97 100644
--- a/lldb/test/functionalities/exec/TestExec.py
+++ b/lldb/test/functionalities/exec/TestExec.py
@@ -1,11 +1,12 @@
 """
 Test some lldb command abbreviations.
 """
+import lldb_shared
+
 import commands
 import lldb
 import os
 import time
-import unittest2
 from lldbtest import *
 import lldbutil
 
@@ -80,10 +81,3 @@
         
              # Run and we should stop at breakpoint in main after exec
             process.Continue()        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py b/lldb/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py
index 76677ff..89d7f72 100644
--- a/lldb/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py
+++ b/lldb/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py
@@ -2,9 +2,10 @@
 Test that expr will time out and allow other threads to run if it blocks.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -51,9 +52,3 @@
         var = frame0.EvaluateExpression ("call_me_to_get_lock()")
         self.assertTrue (var.IsValid())
         self.assertTrue (var.GetValueAsSigned (0) == 567)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/fat_archives/TestFatArchives.py b/lldb/test/functionalities/fat_archives/TestFatArchives.py
index d4be28f..f6d0694 100644
--- a/lldb/test/functionalities/fat_archives/TestFatArchives.py
+++ b/lldb/test/functionalities/fat_archives/TestFatArchives.py
@@ -1,11 +1,12 @@
 """
 Test some lldb command abbreviations.
 """
+import lldb_shared
+
 import commands
 import lldb
 import os
 import time
-import unittest2
 from lldbtest import *
 import lldbutil
 
@@ -53,10 +54,3 @@
             self.assertTrue(function.IsValid(), "Verify breakpoint in fat BSD archive has valid function debug info")
             self.assertTrue(line_entry.GetFileSpec(), "Verify breakpoint in fat BSD archive has source file information")
             self.assertTrue(line_entry.GetLine() != 0, "Verify breakpoint in fat BSD archive has source line information")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/format/TestFormats.py b/lldb/test/functionalities/format/TestFormats.py
index 878f276..84566ea 100644
--- a/lldb/test/functionalities/format/TestFormats.py
+++ b/lldb/test/functionalities/format/TestFormats.py
@@ -2,8 +2,9 @@
 Test the command history mechanism
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -54,9 +55,3 @@
         # child.sendline('Help__')
         # child.expect_exact("error: 'Help__' is not a valid command")
         # child.expect_exact(prompt)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/inferior-assert/TestInferiorAssert.py b/lldb/test/functionalities/inferior-assert/TestInferiorAssert.py
index bea265f..37e88c7 100644
--- a/lldb/test/functionalities/inferior-assert/TestInferiorAssert.py
+++ b/lldb/test/functionalities/inferior-assert/TestInferiorAssert.py
@@ -1,7 +1,8 @@
 """Test that lldb functions correctly after the inferior has asserted."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb, lldbutil, lldbplatformutil
 from lldbtest import *
 
@@ -237,9 +238,3 @@
         self.expect("thread backtrace all",
             substrs = [stop_reason,
                        'main.c:%d' % self.line])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py b/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py
index cd13b80..9fce54c 100644
--- a/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py
+++ b/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py
@@ -1,7 +1,8 @@
 """Test lldb reloads the inferior after it was changed during the session."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -77,10 +78,3 @@
             substrs = ['= 7'])
         self.expect("expression *int_ptr",
             substrs = ['= 7'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/inferior-crashing/TestInferiorCrashing.py b/lldb/test/functionalities/inferior-crashing/TestInferiorCrashing.py
index 40d7688..cd4ba30 100644
--- a/lldb/test/functionalities/inferior-crashing/TestInferiorCrashing.py
+++ b/lldb/test/functionalities/inferior-crashing/TestInferiorCrashing.py
@@ -1,7 +1,8 @@
 """Test that lldb functions correctly after the inferior has crashed."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb, lldbutil, lldbplatformutil
 from lldbtest import *
 
@@ -214,10 +215,3 @@
         # The lldb expression interpreter should be able to read from addresses of the inferior after a crash.
         self.expect("p argv[0]",
             substrs = ['a.out'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py b/lldb/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
index 86eba5d..61eea6e 100644
--- a/lldb/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
+++ b/lldb/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
@@ -1,7 +1,8 @@
 """Test that lldb functions correctly after the inferior has crashed while in a recursive routine."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb, lldbutil, lldbplatformutil
 import sys
 from lldbtest import *
@@ -214,9 +215,3 @@
             startstr = '(char *) $1 = 0x0')
 
         self.check_stop_reason()
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/inline-stepping/TestInlineStepping.py b/lldb/test/functionalities/inline-stepping/TestInlineStepping.py
index 6c2a31e..b0d620e 100644
--- a/lldb/test/functionalities/inline-stepping/TestInlineStepping.py
+++ b/lldb/test/functionalities/inline-stepping/TestInlineStepping.py
@@ -1,7 +1,8 @@
 """Test stepping over and into inlined functions."""
 
+import lldb_shared
+
 import os, time, sys
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -267,9 +268,3 @@
         
         step_sequence = [["// In max_value specialized", "into"]]
         self.run_step_sequence(step_sequence)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py b/lldb/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py
index 8a7b4d0..5b8b11d 100644
--- a/lldb/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py
+++ b/lldb/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py
@@ -1,7 +1,9 @@
 """Test for the JITLoaderGDB interface"""
 
-import os
+import lldb_shared
+
 import unittest2
+import os
 import lldb
 from lldbtest import *
 import lldbutil
@@ -31,9 +33,3 @@
 
         self.assertEqual(process.GetState(), lldb.eStateExited)
         self.assertEqual(process.GetExitStatus(), 0)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py b/lldb/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py
index e6bd49a..609a1b9 100644
--- a/lldb/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py
+++ b/lldb/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py
@@ -1,10 +1,11 @@
 """
 Test that argdumper is a viable launching strategy.
 """
+import lldb_shared
+
 import lldb
 import os
 import time
-import unittest2
 from lldbtest import *
 import lldbutil
 
@@ -92,10 +93,3 @@
                          "Thread in process stopped in 'main' should have a stop reason of eStopReasonBreakpoint");
         
         self.expect("frame variable argv[1]", substrs=['foo bar'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/load_unload/TestLoadUnload.py b/lldb/test/functionalities/load_unload/TestLoadUnload.py
index fa1455b..7122cdc 100644
--- a/lldb/test/functionalities/load_unload/TestLoadUnload.py
+++ b/lldb/test/functionalities/load_unload/TestLoadUnload.py
@@ -2,9 +2,10 @@
 Test that breakpoint by symbol name works correctly with dynamic libs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -310,9 +311,3 @@
         self.expect("thread list", "step over succeeded.", 
             substrs = ['stopped',
                       'stop reason = step over'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/longjmp/TestLongjmp.py b/lldb/test/functionalities/longjmp/TestLongjmp.py
index 3fd06f2..8cb51e6 100644
--- a/lldb/test/functionalities/longjmp/TestLongjmp.py
+++ b/lldb/test/functionalities/longjmp/TestLongjmp.py
@@ -2,8 +2,9 @@
 Test the use of setjmp/longjmp for non-local goto operations in a single-threaded inferior.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -80,9 +81,3 @@
         self.runCmd("thread step-in", RUN_SUCCEEDED)
         self.runCmd("thread step-out", RUN_SUCCEEDED)
         self.check_status()
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/memory/read/TestMemoryRead.py b/lldb/test/functionalities/memory/read/TestMemoryRead.py
index 67cf389..c6430aa 100644
--- a/lldb/test/functionalities/memory/read/TestMemoryRead.py
+++ b/lldb/test/functionalities/memory/read/TestMemoryRead.py
@@ -2,9 +2,10 @@
 Test the 'memory read' command.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -86,10 +87,3 @@
         # 0x7fff5fbff598: error: unsupported byte size (20) for float format
         self.expect("memory read --format 'float' --count 1 --size 20 `&my_double`",
             substrs = ['unsupported byte size (20) for float format'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py b/lldb/test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py
index 786102e..7835a37 100644
--- a/lldb/test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py
+++ b/lldb/test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py
@@ -1,7 +1,8 @@
 """Test evaluating expressions which ref. index variable 'i' which just goes
 from out of scope to in scope when stopped at the breakpoint."""
 
-import unittest2
+import lldb_shared
+
 import lldb
 from lldbtest import *
 import lldbutil
@@ -38,9 +39,3 @@
         self.runCmd('expr ptr[0]->point.y')
         self.runCmd('expr ptr[i]->point.x')
         self.runCmd('expr ptr[i]->point.y')
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/nosucharch/TestNoSuchArch.py b/lldb/test/functionalities/nosucharch/TestNoSuchArch.py
index cda0cd6..bf29645 100644
--- a/lldb/test/functionalities/nosucharch/TestNoSuchArch.py
+++ b/lldb/test/functionalities/nosucharch/TestNoSuchArch.py
@@ -1,8 +1,9 @@
 """
 Test that using a non-existent architecture name does not crash LLDB.
 """
+import lldb_shared
+
 import lldb
-import unittest2
 from lldbtest import *
 import lldbutil
 
@@ -24,10 +25,3 @@
         # Now just create the target with the default arch and check it's fine
         target = self.dbg.CreateTarget(exe)
         self.assertTrue(target.IsValid(), "This target should now be valid")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/object-file/TestImageListMultiArchitecture.py b/lldb/test/functionalities/object-file/TestImageListMultiArchitecture.py
index 47e7db4..54c1d21 100644
--- a/lldb/test/functionalities/object-file/TestImageListMultiArchitecture.py
+++ b/lldb/test/functionalities/object-file/TestImageListMultiArchitecture.py
@@ -4,8 +4,9 @@
 foreign-architecture object files.
 """
 
+import lldb_shared
+
 import os.path
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -36,9 +37,3 @@
             self.match("image list -t -A", [expected_triple_and_arch_regex])
         # Revert to the host platform after all of this is done
         self.runCmd("platform select host")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/paths/TestPaths.py b/lldb/test/functionalities/paths/TestPaths.py
index c9245b0..3576920 100644
--- a/lldb/test/functionalities/paths/TestPaths.py
+++ b/lldb/test/functionalities/paths/TestPaths.py
@@ -1,10 +1,11 @@
 """
 Test some lldb command abbreviations.
 """
+import lldb_shared
+
 import lldb
 import os
 import time
-import unittest2
 from lldbtest import *
 import lldbutil
 
@@ -43,10 +44,3 @@
         fspec = lldb.SBFileSpec("C:\\dummy1\\dummy2//unknown_file", True);
         self.assertEqual(os.path.normpath(fspec.GetDirectory()), os.path.normpath("C:/dummy1/dummy2"));
         self.assertEqual(fspec.GetFilename(), "unknown_file");
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/platform/TestPlatformCommand.py b/lldb/test/functionalities/platform/TestPlatformCommand.py
index c7afacf..9790826 100644
--- a/lldb/test/functionalities/platform/TestPlatformCommand.py
+++ b/lldb/test/functionalities/platform/TestPlatformCommand.py
@@ -2,8 +2,9 @@
 Test some lldb platform commands.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -60,10 +61,3 @@
         self.skipTest("due to taking too long to complete.")
         self.expect("platform shell sleep 15", error=True,
                 substrs = ["error: timed out waiting for shell command to complete"])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/plugins/commands/TestPluginCommands.py b/lldb/test/functionalities/plugins/commands/TestPluginCommands.py
index f00ada5..4053fe3 100644
--- a/lldb/test/functionalities/plugins/commands/TestPluginCommands.py
+++ b/lldb/test/functionalities/plugins/commands/TestPluginCommands.py
@@ -2,9 +2,10 @@
 Test that plugins that load commands work correctly.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -59,10 +60,3 @@
             print retobj.GetOutput()
 
         self.expect(retobj,substrs = ['abc def ghi'], exe=False)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py b/lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
index d4b1b5f..749916f 100644
--- a/lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
+++ b/lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
@@ -2,9 +2,10 @@
 Test that the Python operating system plugin works correctly
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -145,10 +146,3 @@
         
         self.assertTrue(line_entry.GetFileSpec().GetFilename() == 'main.c', "Make sure we stepped from line 5 to line 6 in main.c")
         self.assertTrue(line_entry.GetLine() == 6, "Make sure we stepped from line 5 to line 6 in main.c")
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/postmortem/minidump/TestMiniDump.py b/lldb/test/functionalities/postmortem/minidump/TestMiniDump.py
index 84bf777..bbacc19 100644
--- a/lldb/test/functionalities/postmortem/minidump/TestMiniDump.py
+++ b/lldb/test/functionalities/postmortem/minidump/TestMiniDump.py
@@ -2,7 +2,8 @@
 Test basics of mini dump debugging.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 from lldbtest import *
 import lldbutil
@@ -36,9 +37,3 @@
         self.dbg.CreateTarget("")
         self.target = self.dbg.GetSelectedTarget()
         self.process = self.target.LoadCore("fizzbuzz_no_heap.dmp")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/process_attach/TestProcessAttach.py b/lldb/test/functionalities/process_attach/TestProcessAttach.py
index b8005c2..ed11a48 100644
--- a/lldb/test/functionalities/process_attach/TestProcessAttach.py
+++ b/lldb/test/functionalities/process_attach/TestProcessAttach.py
@@ -2,8 +2,9 @@
 Test process attach.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -52,9 +53,3 @@
 
         # Call super's tearDown().
         TestBase.tearDown(self)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/process_attach/attach_denied/TestAttachDenied.py b/lldb/test/functionalities/process_attach/attach_denied/TestAttachDenied.py
index 33eb35f..74013fa 100644
--- a/lldb/test/functionalities/process_attach/attach_denied/TestAttachDenied.py
+++ b/lldb/test/functionalities/process_attach/attach_denied/TestAttachDenied.py
@@ -2,9 +2,10 @@
 Test denied process attach.
 """
 
+import lldb_shared
+
 import os
 import time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -54,10 +55,3 @@
         self.expect('process attach -p ' + pid,
                     startstr = 'error: attach failed:',
                     error = True)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/process_group/TestChangeProcessGroup.py b/lldb/test/functionalities/process_group/TestChangeProcessGroup.py
index 343e53d..6864c47 100644
--- a/lldb/test/functionalities/process_group/TestChangeProcessGroup.py
+++ b/lldb/test/functionalities/process_group/TestChangeProcessGroup.py
@@ -1,7 +1,8 @@
 """Test that we handle inferiors which change their process group"""
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -97,9 +98,3 @@
         shell_command = lldb.SBPlatformShellCommand(cmd)
         err = platform.Run(shell_command)
         return (err, shell_command.GetStatus(), shell_command.GetOutput())
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/process_launch/TestProcessLaunch.py b/lldb/test/functionalities/process_launch/TestProcessLaunch.py
index e843bfc..50e219f 100644
--- a/lldb/test/functionalities/process_launch/TestProcessLaunch.py
+++ b/lldb/test/functionalities/process_launch/TestProcessLaunch.py
@@ -2,8 +2,9 @@
 Test lldb process launch flags.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -175,11 +176,3 @@
 
         if not success:
             self.fail(err_msg)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/recursion/TestValueObjectRecursion.py b/lldb/test/functionalities/recursion/TestValueObjectRecursion.py
index 243b862..fa90004 100644
--- a/lldb/test/functionalities/recursion/TestValueObjectRecursion.py
+++ b/lldb/test/functionalities/recursion/TestValueObjectRecursion.py
@@ -2,8 +2,9 @@
 Test lldb data formatter subsystem.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -54,9 +55,3 @@
         self.assertTrue(child.GetChildAtIndex(0).IsValid(),"the deep ValueObject has no value")
         self.assertTrue(child.GetChildAtIndex(0).GetValueAsUnsigned() != 0,"the deep ValueObject has a zero value")
         self.assertTrue(child.GetChildAtIndex(1).GetValueAsUnsigned() != 0, "the deep ValueObject has no next")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/register/TestRegisters.py b/lldb/test/functionalities/register/TestRegisters.py
index 32750de..efdbaaf 100755
--- a/lldb/test/functionalities/register/TestRegisters.py
+++ b/lldb/test/functionalities/register/TestRegisters.py
@@ -2,9 +2,10 @@
 Test the 'register' command.
 """
 
+import lldb_shared
+
 import os, sys, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -352,9 +353,3 @@
         if test_16bit_regs:
             self.expect("expr -- $ax == (($ah << 8) | $al)",
                 substrs = ['true'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/rerun/TestRerun.py b/lldb/test/functionalities/rerun/TestRerun.py
index 1a0430f..7d5972b 100644
--- a/lldb/test/functionalities/rerun/TestRerun.py
+++ b/lldb/test/functionalities/rerun/TestRerun.py
@@ -1,10 +1,11 @@
 """
 Test that argdumper is a viable launching strategy.
 """
+import lldb_shared
+
 import lldb
 import os
 import time
-import unittest2
 from lldbtest import *
 import lldbutil
 
@@ -71,11 +72,3 @@
         self.expect("frame variable argv[1]", substrs=['1'])
         self.expect("frame variable argv[2]", substrs=['2'])
         self.expect("frame variable argv[3]", substrs=['3'])
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/return-value/TestReturnValue.py b/lldb/test/functionalities/return-value/TestReturnValue.py
index bafde43..9f7c07a 100644
--- a/lldb/test/functionalities/return-value/TestReturnValue.py
+++ b/lldb/test/functionalities/return-value/TestReturnValue.py
@@ -2,9 +2,10 @@
 Test getting return-values correctly when stepping out
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -206,9 +207,3 @@
             ret_child_str = ret_child.GetValue()
 
             self.assertEqual(in_child_str, ret_child_str)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/set-data/TestSetData.py b/lldb/test/functionalities/set-data/TestSetData.py
index 3bd5ee4..f260bbd 100644
--- a/lldb/test/functionalities/set-data/TestSetData.py
+++ b/lldb/test/functionalities/set-data/TestSetData.py
@@ -2,8 +2,9 @@
 Set the contents of variables and registers using raw data
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -57,9 +58,3 @@
 
         self.expect("fr var -d run-target string", VARIABLES_DISPLAYED_CORRECTLY,
             substrs = ['NSString *', 'nil'])
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/signal/TestSendSignal.py b/lldb/test/functionalities/signal/TestSendSignal.py
index 5ce843d..71b96b7 100644
--- a/lldb/test/functionalities/signal/TestSendSignal.py
+++ b/lldb/test/functionalities/signal/TestSendSignal.py
@@ -1,7 +1,8 @@
 """Test that lldb command 'process signal SIGUSR1' to send a signal to the inferior works."""
 
+import lldb_shared
+
 import os, time, signal
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -100,9 +101,3 @@
         self.assertTrue(state == expected_state,
                         "It was the %s state." %
                         lldb.SBDebugger_StateAsCString(expected_state))
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/signal/handle-segv/TestHandleSegv.py b/lldb/test/functionalities/signal/handle-segv/TestHandleSegv.py
index fdb8f99..70b8cf2 100644
--- a/lldb/test/functionalities/signal/handle-segv/TestHandleSegv.py
+++ b/lldb/test/functionalities/signal/handle-segv/TestHandleSegv.py
@@ -1,7 +1,8 @@
 """Test that we can debug inferiors that handle SIGSEGV by themselves"""
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -38,9 +39,3 @@
         process.Continue()
         self.assertEqual(process.GetState(), lldb.eStateExited)
         self.assertEqual(process.GetExitStatus(), 0)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/signal/raise/TestRaise.py b/lldb/test/functionalities/signal/raise/TestRaise.py
index 0099251..6705bfd 100644
--- a/lldb/test/functionalities/signal/raise/TestRaise.py
+++ b/lldb/test/functionalities/signal/raise/TestRaise.py
@@ -1,7 +1,8 @@
 """Test that we handle inferiors that send signals to themselves"""
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -216,9 +217,3 @@
 
         # We are done
         process.Kill()
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py b/lldb/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py
index cd45412..17af6cb 100644
--- a/lldb/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py
+++ b/lldb/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py
@@ -2,8 +2,9 @@
 Test the lldb command line takes a filename with single quote chars.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -66,10 +67,3 @@
 
             self.expect(from_child, exe=False,
                 substrs = ["Current executable set to"])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py b/lldb/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py
index 1b38afc..3585b2f 100644
--- a/lldb/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py
+++ b/lldb/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py
@@ -2,9 +2,10 @@
 Test thread step-in, step-over and step-out work with the "Avoid no debug" option.
 """
 
+import lldb_shared
+
 import os
 import re
-import unittest2
 import lldb, lldbutil
 import sys
 from lldbtest import *
@@ -107,10 +108,3 @@
         # frame.  In gdb, step-over/step-in move to the end of the line they stepped out to.
         # If we ever change this we will need to fix this test.
         self.hit_correct_line ("int return_value = no_debug_caller(5, called_from_nodebug)")
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/stop-hook/TestStopHookCmd.py b/lldb/test/functionalities/stop-hook/TestStopHookCmd.py
index df94835..9158412 100644
--- a/lldb/test/functionalities/stop-hook/TestStopHookCmd.py
+++ b/lldb/test/functionalities/stop-hook/TestStopHookCmd.py
@@ -5,7 +5,6 @@
 import lldb_shared
 
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -62,10 +61,3 @@
 
         self.expect('target stop-hook list', 'Stop Hook deleted successfully',
             substrs = ['No stop hooks.'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/stop-hook/TestStopHookMechanism.py b/lldb/test/functionalities/stop-hook/TestStopHookMechanism.py
index abb9995..211c3f9 100644
--- a/lldb/test/functionalities/stop-hook/TestStopHookMechanism.py
+++ b/lldb/test/functionalities/stop-hook/TestStopHookMechanism.py
@@ -2,8 +2,9 @@
 Test lldb target stop-hook mechanism to see whether it fires off correctly .
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -95,10 +96,3 @@
         # Verify that the 'Stop Hooks' mechanism is NOT BEING fired off.
         self.expect(child.before, exe=False, matching=False,
             substrs = ['(void *) $'])
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py b/lldb/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py
index 59c5222..49da3fa 100644
--- a/lldb/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py
+++ b/lldb/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py
@@ -2,8 +2,9 @@
 Test that lldb stop-hook works for multiple threads.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -71,10 +72,3 @@
         # Continue and expect to find the output emitted by the firing of our stop hook.
         child.sendline('continue')
         child.expect_exact('(uint32_t) ::g_val = ')
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/target_command/TestTargetCommand.py b/lldb/test/functionalities/target_command/TestTargetCommand.py
index 8e81dea..28dcd1c 100644
--- a/lldb/test/functionalities/target_command/TestTargetCommand.py
+++ b/lldb/test/functionalities/target_command/TestTargetCommand.py
@@ -2,7 +2,8 @@
 Test some target commands: create, list, select, variable.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import sys
 from lldbtest import *
@@ -196,9 +197,3 @@
                     substrs = ['a'])
         self.expect("target variable my_global_char", VARIABLES_DISPLAYED_CORRECTLY,
                     substrs = ["my_global_char", "'X'"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/TestNumThreads.py b/lldb/test/functionalities/thread/TestNumThreads.py
index 65ca699..8a2ad59 100644
--- a/lldb/test/functionalities/thread/TestNumThreads.py
+++ b/lldb/test/functionalities/thread/TestNumThreads.py
@@ -2,8 +2,9 @@
 Test number of threads.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -48,9 +49,3 @@
         # Using std::thread may involve extra threads, so we assert that there are
         # at least 4 rather than exactly 4.
         self.assertTrue(num_threads >= 4, 'Number of expected threads and actual threads do not match.')
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py b/lldb/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py
index e149f36..462314b 100644
--- a/lldb/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py
+++ b/lldb/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py
@@ -2,8 +2,9 @@
 Test number of threads.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -72,9 +73,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py b/lldb/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py
index 149d6a2..3fa1b49 100644
--- a/lldb/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py
+++ b/lldb/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py
@@ -10,8 +10,10 @@
 verified to match the expected number of events.
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -484,10 +486,3 @@
             watchpoint_hit_count = self.thread_watchpoint.GetHitCount() if expected_watchpoint_threads > 0 else 0
             self.assertEqual(expected_watchpoint_threads, watchpoint_hit_count,
                 "Expected %d watchpoint hits, got %d" % (expected_watchpoint_threads, watchpoint_hit_count))
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py b/lldb/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py
index e196fa2..89eccfd 100644
--- a/lldb/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py
+++ b/lldb/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py
@@ -2,8 +2,9 @@
 Test that step-inst over a crash behaves correctly.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -47,10 +48,3 @@
         self.assertEqual(process.GetState(), lldb.eStateStopped, PROCESS_STOPPED)
         self.assertTrue(lldbutil.is_thread_crashed(self, thread), "Thread has crashed")
         process.Kill()
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py b/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
index 51bc26f..d91f8d5 100644
--- a/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
+++ b/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
@@ -2,8 +2,9 @@
 Test thread creation after process attach.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -115,10 +116,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/create_during_step/TestCreateDuringStep.py b/lldb/test/functionalities/thread/create_during_step/TestCreateDuringStep.py
index 76fbc15..a5ceae3 100644
--- a/lldb/test/functionalities/thread/create_during_step/TestCreateDuringStep.py
+++ b/lldb/test/functionalities/thread/create_during_step/TestCreateDuringStep.py
@@ -2,8 +2,9 @@
 Test number of threads.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -122,9 +123,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py b/lldb/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py
index cecc5d91..dc1d4dc 100644
--- a/lldb/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py
+++ b/lldb/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py
@@ -2,8 +2,9 @@
 Test number of threads.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -76,9 +77,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/exit_during_step/TestExitDuringStep.py b/lldb/test/functionalities/thread/exit_during_step/TestExitDuringStep.py
index a69bb7f..30ca8fe 100644
--- a/lldb/test/functionalities/thread/exit_during_step/TestExitDuringStep.py
+++ b/lldb/test/functionalities/thread/exit_during_step/TestExitDuringStep.py
@@ -2,8 +2,9 @@
 Test number of threads.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -138,9 +139,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/jump/TestThreadJump.py b/lldb/test/functionalities/thread/jump/TestThreadJump.py
index 3919a24..a9b0686 100644
--- a/lldb/test/functionalities/thread/jump/TestThreadJump.py
+++ b/lldb/test/functionalities/thread/jump/TestThreadJump.py
@@ -2,8 +2,9 @@
 Test jumping to different places.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -55,9 +56,3 @@
         self.runCmd("thread step-out")                  # return out
         self.runCmd("thread step-over")                 # assign to the global
         self.expect("expr %s" % var, substrs = [value]) # check it
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py b/lldb/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py
index cf6cda6..3afd6a2 100644
--- a/lldb/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py
+++ b/lldb/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py
@@ -2,8 +2,9 @@
 Test number of threads.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -72,9 +73,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/state/TestThreadStates.py b/lldb/test/functionalities/thread/state/TestThreadStates.py
index e1f29a4..06225f1 100644
--- a/lldb/test/functionalities/thread/state/TestThreadStates.py
+++ b/lldb/test/functionalities/thread/state/TestThreadStates.py
@@ -2,8 +2,10 @@
 Test thread states.
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -340,9 +342,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/step_out/TestThreadStepOut.py b/lldb/test/functionalities/thread/step_out/TestThreadStepOut.py
index 96a62e3..3100b36 100644
--- a/lldb/test/functionalities/thread/step_out/TestThreadStepOut.py
+++ b/lldb/test/functionalities/thread/step_out/TestThreadStepOut.py
@@ -2,8 +2,9 @@
 Test stepping out from a function in a multi-threaded program.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -126,9 +127,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(self.inferior_process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/thread_exit/TestThreadExit.py b/lldb/test/functionalities/thread/thread_exit/TestThreadExit.py
index 99f7ac6..3979765 100644
--- a/lldb/test/functionalities/thread/thread_exit/TestThreadExit.py
+++ b/lldb/test/functionalities/thread/thread_exit/TestThreadExit.py
@@ -2,8 +2,9 @@
 Test number of threads.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -112,9 +113,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py b/lldb/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
index 1c22ae8..0c2c884 100644
--- a/lldb/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
+++ b/lldb/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
@@ -2,9 +2,10 @@
 Test that we obey thread conditioned breakpoints.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -59,10 +60,3 @@
 
         next_stop_state = process.GetState()
         self.assertTrue (next_stop_state == lldb.eStateExited, "We should have not hit the breakpoint again.")
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/tty/TestTerminal.py b/lldb/test/functionalities/tty/TestTerminal.py
index e346e1c..79cc264 100644
--- a/lldb/test/functionalities/tty/TestTerminal.py
+++ b/lldb/test/functionalities/tty/TestTerminal.py
@@ -2,8 +2,10 @@
 Test lldb command aliases.
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -33,10 +35,3 @@
         self.assertTrue(error.Success(), "Make sure launch happened successfully in a terminal window")
         # Running in synchronous mode our process should have run and already exited by the time target.Launch() returns
         self.assertTrue(process.GetState() == lldb.eStateExited)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/functionalities/type_completion/TestTypeCompletion.py b/lldb/test/functionalities/type_completion/TestTypeCompletion.py
index 0e11ff6..5795218 100644
--- a/lldb/test/functionalities/type_completion/TestTypeCompletion.py
+++ b/lldb/test/functionalities/type_completion/TestTypeCompletion.py
@@ -2,8 +2,9 @@
 Check that types only get completed when necessary.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -111,9 +112,3 @@
         string = field0.GetType().GetPointeeType()
         self.assertTrue(string.IsValid(), 'std::string should be valid')
         self.assertTrue(string.IsTypeComplete(), 'std::string should now be complete')
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/type_lookup/TestTypeLookup.py b/lldb/test/functionalities/type_lookup/TestTypeLookup.py
index 2a75656..4e27a02 100644
--- a/lldb/test/functionalities/type_lookup/TestTypeLookup.py
+++ b/lldb/test/functionalities/type_lookup/TestTypeLookup.py
@@ -2,8 +2,9 @@
 Test type lookup command.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import datetime
@@ -38,9 +39,3 @@
         self.expect('type lookup NSURL', substrs=['NSURL'])
         self.expect('type lookup NSArray', substrs=['NSArray'])
         self.expect('type lookup NSObject', substrs=['NSObject', 'isa'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py b/lldb/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py
index 16b44857..2d557f1 100644
--- a/lldb/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py
+++ b/lldb/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py
@@ -2,8 +2,9 @@
 Test that we can backtrace correctly with 'noreturn' functions on the stack
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -71,10 +72,3 @@
 
         if thread.GetFrameAtIndex (main_frame_number).GetFunctionName() != "main":
             self.fail("Did not find main() above func_a().")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py b/lldb/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py
index 9aec735..fe375b4 100644
--- a/lldb/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py
+++ b/lldb/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py
@@ -2,8 +2,9 @@
 Test that we can backtrace correctly with 'sigtramp' functions on the stack
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -76,9 +77,3 @@
 
         if found_main == False:
             self.fail("Unable to find main() in backtrace.")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/unwind/standard/TestStandardUnwind.py b/lldb/test/functionalities/unwind/standard/TestStandardUnwind.py
index cf14738..58f7db0 100644
--- a/lldb/test/functionalities/unwind/standard/TestStandardUnwind.py
+++ b/lldb/test/functionalities/unwind/standard/TestStandardUnwind.py
@@ -10,8 +10,10 @@
 after escaping some special characters).
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -139,9 +141,3 @@
 
         test_function_dwarf.__name__ = test_name
         setattr(StandardUnwindTest, test_function_dwarf.__name__, test_function_dwarf)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/value_md5_crash/TestValueMD5Crash.py b/lldb/test/functionalities/value_md5_crash/TestValueMD5Crash.py
index 2f73587..9a51c58 100644
--- a/lldb/test/functionalities/value_md5_crash/TestValueMD5Crash.py
+++ b/lldb/test/functionalities/value_md5_crash/TestValueMD5Crash.py
@@ -2,8 +2,9 @@
 Verify that the hash computing logic for ValueObject's values can't crash us.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -47,9 +48,3 @@
         v = value.GetValue()
         
         # if we are here, instead of crashed, the test succeeded
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py b/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
index 624dc56..d784faa 100644
--- a/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
+++ b/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
@@ -2,9 +2,10 @@
 Test lldb watchpoint that uses '-s size' to watch a pointed location with size.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -92,10 +93,3 @@
             substrs = ['hit_count = 1'])
 
         self.runCmd("thread backtrace all")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py b/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
index 267f61c..ee92815 100644
--- a/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
+++ b/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
@@ -2,8 +2,9 @@
 Test my first lldb watchpoint.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -79,10 +80,3 @@
         # The hit count should now be 1.
         self.expect("watchpoint list -v",
             substrs = ['hit_count = 1'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py b/lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
index e1bd0dd..024791a 100644
--- a/lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
+++ b/lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
@@ -2,8 +2,9 @@
 Test that lldb watchpoint works for multiple threads.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import re
 import lldb
 from lldbtest import *
@@ -132,10 +133,3 @@
                 continue
             else:
                 self.fail("The stop reason should be either break or watchpoint")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py b/lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py
index d13c89c..3401976 100644
--- a/lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py
+++ b/lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py
@@ -1,6 +1,7 @@
 """Test stepping over watchpoints."""
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -103,9 +104,3 @@
                 self.assertTrue(stop_reason == lldb.eStopReasonPlanComplete,
                                 STOPPED_DUE_TO_STEP_IN)
         self.assertTrue(watchpoint_hit, "Watchpoint never hit.")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py b/lldb/test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py
index 2c4b3e1..b216136 100644
--- a/lldb/test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py
+++ b/lldb/test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py
@@ -2,8 +2,10 @@
 Test that a variable watchpoint should only hit when in scope.
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -77,10 +79,3 @@
         # The hit count should now be 1.
         self.expect("watchpoint list -v",
             substrs = ['hit_count = 1'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py b/lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
index cc05230..cfa6a10 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
@@ -2,8 +2,9 @@
 Test watchpoint list, enable, disable, and delete commands.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -308,10 +309,3 @@
         # The hit count should be 1.
         self.expect("watchpoint list -v",
             substrs = ['hit_count = 1'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py b/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
index 2d269fd..a7b9d4c 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
@@ -2,8 +2,9 @@
 Test 'watchpoint command'.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -134,10 +135,3 @@
         # be 'exited'.
         self.expect("process status",
             substrs = ['exited'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py b/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
index 79566fb..6bd8b93 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
@@ -2,8 +2,9 @@
 Test 'watchpoint command'.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -82,10 +83,3 @@
         # The watchpoint command "forced" our global variable 'cookie' to become 777.
         self.expect("frame variable --show-globals cookie",
             substrs = ['(int32_t)', 'cookie = 777'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py b/lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
index 726b80f..5b66e65 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
@@ -2,8 +2,9 @@
 Test watchpoint modify command to set condition on a watchpoint.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -73,10 +74,3 @@
         # The hit count should now be 2.
         self.expect("watchpoint list -v",
             substrs = ['hit_count = 5'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py b/lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
index 307be3a..821062d 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
@@ -1,7 +1,8 @@
 """Test that adding, deleting and modifying watchpoints sends the appropriate events."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -84,9 +85,3 @@
             print "Found an event I didn't expect: ", event
 
         self.assertTrue (not found_event, "Only one event per change.")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_on_vectors/TestValueOfVectorVariable.py b/lldb/test/functionalities/watchpoint/watchpoint_on_vectors/TestValueOfVectorVariable.py
index 96ed643..2a340da 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_on_vectors/TestValueOfVectorVariable.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_on_vectors/TestValueOfVectorVariable.py
@@ -2,8 +2,9 @@
 Test displayed value of a vector variable while doing watchpoint operations
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -42,9 +43,3 @@
         # Value of a vector variable should be displayed correctly
         self.expect("watchpoint set variable global_vector", WATCHPOINT_CREATED,
             substrs = ['new value: (1, 2, 3, 4)'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py b/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
index eaa05e8..cdfd435 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
@@ -2,8 +2,9 @@
 Test lldb watchpoint that uses 'watchpoint set -w write -s size' to watch a pointed location with size.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -82,10 +83,3 @@
             substrs = ['hit_count = 1'])
 
         self.runCmd("thread backtrace all")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py b/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py
index 9683c88..f7e7bcf 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py
@@ -2,8 +2,9 @@
 Test error cases for the 'watchpoint set' command to make sure it errors out when necessary.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -62,10 +63,3 @@
         # Wrong size parameter is an error.
         self.expect("watchpoint set variable -s -128", error=True,
             substrs = ['invalid enumeration value'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/help/TestHelp.py b/lldb/test/help/TestHelp.py
index b30c143..2c665e1 100644
--- a/lldb/test/help/TestHelp.py
+++ b/lldb/test/help/TestHelp.py
@@ -4,8 +4,9 @@
 See also CommandInterpreter::OutputFormattedHelpText().
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -160,10 +161,3 @@
             substrs = ['The following subcommands are supported:'],
             patterns = ['expression +--',
                         'variable +--'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/anonymous/TestAnonymous.py b/lldb/test/lang/c/anonymous/TestAnonymous.py
index da0ef5b..1899384 100644
--- a/lldb/test/lang/c/anonymous/TestAnonymous.py
+++ b/lldb/test/lang/c/anonymous/TestAnonymous.py
@@ -1,7 +1,8 @@
 """Test that anonymous structs/unions are transparent to member access"""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -142,9 +143,3 @@
         # The breakpoint should have a hit count of 1.
         self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
             substrs = [' resolved, hit count = 1'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/array_types/TestArrayTypes.py b/lldb/test/lang/c/array_types/TestArrayTypes.py
index e159efc..98e839c 100644
--- a/lldb/test/lang/c/array_types/TestArrayTypes.py
+++ b/lldb/test/lang/c/array_types/TestArrayTypes.py
@@ -1,7 +1,8 @@
 """Test breakpoint by file/line number; and list variables with array types."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -193,10 +194,3 @@
         self.assertTrue(argc.GetValueType() == lldb.eValueTypeVariableArgument,
                         "Variable 'argc' should have '%s' value type." %
                         value_type_to_str(lldb.eValueTypeVariableArgument))
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/bitfields/TestBitfields.py b/lldb/test/lang/c/bitfields/TestBitfields.py
index 090b319..024af2d 100644
--- a/lldb/test/lang/c/bitfields/TestBitfields.py
+++ b/lldb/test/lang/c/bitfields/TestBitfields.py
@@ -1,7 +1,8 @@
 """Show bitfields and check that they display correctly."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -157,10 +158,3 @@
         # Now kill the process, and we are done.
         rc = target.GetProcess().Kill()
         self.assertTrue(rc.Success())
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/blocks/TestBlocks.py b/lldb/test/lang/c/blocks/TestBlocks.py
index 6dd4bec..783401e 100644
--- a/lldb/test/lang/c/blocks/TestBlocks.py
+++ b/lldb/test/lang/c/blocks/TestBlocks.py
@@ -1,7 +1,9 @@
 """Test that lldb can invoke blocks and access variables inside them"""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -55,9 +57,3 @@
         self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
             substrs = ['stopped',
                        'stop reason = breakpoint'])
-            
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/const_variables/TestConstVariables.py b/lldb/test/lang/c/const_variables/TestConstVariables.py
index 8954e49..30fc91a 100644
--- a/lldb/test/lang/c/const_variables/TestConstVariables.py
+++ b/lldb/test/lang/c/const_variables/TestConstVariables.py
@@ -1,7 +1,8 @@
 """Check that compiler-generated constant values work correctly"""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -57,9 +58,3 @@
             substrs = ['(int) $1 = 256'])
 
         self.runCmd("kill")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/enum_types/TestEnumTypes.py b/lldb/test/lang/c/enum_types/TestEnumTypes.py
index 96d2907..6f1c52d 100644
--- a/lldb/test/lang/c/enum_types/TestEnumTypes.py
+++ b/lldb/test/lang/c/enum_types/TestEnumTypes.py
@@ -1,7 +1,8 @@
 """Look up enum type information and check for correct display."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -66,9 +67,3 @@
             self.expect("frame variable day", 'check for valid enumeration value',
                 substrs = [enum_value])
             lldbutil.continue_to_breakpoint (self.process(), bkpt)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/forward/TestForwardDeclaration.py b/lldb/test/lang/c/forward/TestForwardDeclaration.py
index 9eb8ae6..6db0b30 100644
--- a/lldb/test/lang/c/forward/TestForwardDeclaration.py
+++ b/lldb/test/lang/c/forward/TestForwardDeclaration.py
@@ -1,7 +1,8 @@
 """Test that forward declaration of a data structure gets resolved correctly."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -42,10 +43,3 @@
             substrs = ['(bar)',
                        '(int) a = 1',
                        '(int) b = 2'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/function_types/TestFunctionTypes.py b/lldb/test/lang/c/function_types/TestFunctionTypes.py
index f8ac8a6..fb46ea8 100644
--- a/lldb/test/lang/c/function_types/TestFunctionTypes.py
+++ b/lldb/test/lang/c/function_types/TestFunctionTypes.py
@@ -1,7 +1,8 @@
 """Test variable with function ptr type and that break on the function works."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -71,9 +72,3 @@
         # The breakpoint should have a hit count of 1.
         self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
                     substrs = [' resolved, hit count = 1'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/global_variables/TestGlobalVariables.py b/lldb/test/lang/c/global_variables/TestGlobalVariables.py
index 2300509..7d9c0dd 100644
--- a/lldb/test/lang/c/global_variables/TestGlobalVariables.py
+++ b/lldb/test/lang/c/global_variables/TestGlobalVariables.py
@@ -1,7 +1,8 @@
 """Show global variables and check that they do indeed have global scopes."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -72,10 +73,3 @@
                     substrs = ['g_marked_spot.y', '21'])
         self.expect("target variable g_marked_spot.y", VARIABLES_DISPLAYED_CORRECTLY, matching=False,
                     substrs = ["can't be resolved"])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/modules/TestCModules.py b/lldb/test/lang/c/modules/TestCModules.py
index 1ac8484..5875c77 100644
--- a/lldb/test/lang/c/modules/TestCModules.py
+++ b/lldb/test/lang/c/modules/TestCModules.py
@@ -1,7 +1,8 @@
 """Test that importing modules in C works as expected."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import platform
 import lldbutil
@@ -60,9 +61,3 @@
         TestBase.setUp(self)
         # Find the line number to break inside main().
         self.line = line_number('main.c', '// Set breakpoint 0 here.')
-            
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/register_variables/TestRegisterVariables.py b/lldb/test/lang/c/register_variables/TestRegisterVariables.py
index 9274524..a73bc26 100644
--- a/lldb/test/lang/c/register_variables/TestRegisterVariables.py
+++ b/lldb/test/lang/c/register_variables/TestRegisterVariables.py
@@ -1,7 +1,8 @@
 """Check that compiler-generated register values work correctly"""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -65,9 +66,3 @@
             substrs = ['(int) $3 = 5'])
 
         self.runCmd("kill")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/set_values/TestSetValues.py b/lldb/test/lang/c/set_values/TestSetValues.py
index 4e64a41..ae70f77 100644
--- a/lldb/test/lang/c/set_values/TestSetValues.py
+++ b/lldb/test/lang/c/set_values/TestSetValues.py
@@ -1,7 +1,8 @@
 """Test settings and readings of program variables."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -106,10 +107,3 @@
         self.runCmd("expression i = 1.5")
         self.expect("frame variable --show-types", VARIABLES_DISPLAYED_CORRECTLY,
             startstr = "(long double) i = 1.5")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/shared_lib/TestSharedLib.py b/lldb/test/lang/c/shared_lib/TestSharedLib.py
index f2a84af..dd09527 100644
--- a/lldb/test/lang/c/shared_lib/TestSharedLib.py
+++ b/lldb/test/lang/c/shared_lib/TestSharedLib.py
@@ -1,5 +1,7 @@
 """Test that types defined in shared libraries work correctly."""
 
+import lldb_shared
+
 import unittest2
 import lldb
 from lldbtest import *
@@ -65,9 +67,3 @@
         # The breakpoint should have a hit count of 1.
         self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
             substrs = [' resolved, hit count = 1'])
-                       
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py b/lldb/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py
index c6cd427..611a361 100644
--- a/lldb/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py
+++ b/lldb/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py
@@ -1,5 +1,7 @@
 """Test that types defined in shared libraries with stripped symbols work correctly."""
 
+import lldb_shared
+
 import unittest2
 import lldb
 from lldbtest import *
@@ -67,9 +69,3 @@
         # The breakpoint should have a hit count of 1.
         self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
             substrs = [' resolved, hit count = 1'])
-                       
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/stepping/TestStepAndBreakpoints.py b/lldb/test/lang/c/stepping/TestStepAndBreakpoints.py
index 11d639a..ed50926 100644
--- a/lldb/test/lang/c/stepping/TestStepAndBreakpoints.py
+++ b/lldb/test/lang/c/stepping/TestStepAndBreakpoints.py
@@ -1,7 +1,8 @@
 """Test stepping over vrs. hitting breakpoints & subsequent stepping in various forms."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -237,9 +238,3 @@
 
         thread.StepInto("NoSuchFunction")
         self.assertTrue (thread.GetFrameAtIndex(0).GetFunctionName() == "main")
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/stepping/TestThreadStepping.py b/lldb/test/lang/c/stepping/TestThreadStepping.py
index 50322b8..e02551b 100644
--- a/lldb/test/lang/c/stepping/TestThreadStepping.py
+++ b/lldb/test/lang/c/stepping/TestThreadStepping.py
@@ -2,9 +2,10 @@
 Test thread stepping features in combination with frame select.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 import lldbutil
@@ -75,10 +76,3 @@
         self.expect("thread backtrace", STEP_OUT_SUCCEEDED,
             substrs = ["stop reason = step out"],
             patterns = ["frame #0.*main.c:%d" % self.line4])
-        
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/strings/TestCStrings.py b/lldb/test/lang/c/strings/TestCStrings.py
index a2752df..f1d9be2 100644
--- a/lldb/test/lang/c/strings/TestCStrings.py
+++ b/lldb/test/lang/c/strings/TestCStrings.py
@@ -52,9 +52,3 @@
 
         self.expect("expression !z",
                     substrs = ['false'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/tls_globals/TestTlsGlobals.py b/lldb/test/lang/c/tls_globals/TestTlsGlobals.py
index 564f069..305ff39 100644
--- a/lldb/test/lang/c/tls_globals/TestTlsGlobals.py
+++ b/lldb/test/lang/c/tls_globals/TestTlsGlobals.py
@@ -1,7 +1,9 @@
 """Test that thread-local storage can be read correctly."""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -69,9 +71,3 @@
             patterns = ["\(int\) \$.* = 44"])
         self.expect("expr var_shared", VARIABLES_DISPLAYED_CORRECTLY,
             patterns = ["\(int\) \$.* = 33"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/c/typedef/Testtypedef.py b/lldb/test/lang/c/typedef/Testtypedef.py
index c00bcd4..5c2882b 100644
--- a/lldb/test/lang/c/typedef/Testtypedef.py
+++ b/lldb/test/lang/c/typedef/Testtypedef.py
@@ -1,7 +1,8 @@
 """Look up type information for typedefs of same name at different lexical scope and check for correct display."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -43,9 +44,3 @@
             self.expect("image lookup -t a", DATA_TYPES_DISPLAYED_CORRECTLY,
             substrs = ['name = "' + t + '"'])
             self.runCmd("continue")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/bool/TestCPPBool.py b/lldb/test/lang/cpp/bool/TestCPPBool.py
index 9138217..0724fc5 100644
--- a/lldb/test/lang/cpp/bool/TestCPPBool.py
+++ b/lldb/test/lang/cpp/bool/TestCPPBool.py
@@ -24,9 +24,3 @@
 
         self.expect("expression -- my_bool = true",
                     startstr = "(bool) $1 = true")
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py b/lldb/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py
index a8b69de..867bfed 100644
--- a/lldb/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py
+++ b/lldb/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py
@@ -2,8 +2,9 @@
 Test lldb breakpoint command for CPP methods & functions in a namespace.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -79,11 +80,3 @@
                                                             a_out_module,
                                                             nested_comp_unit)
         self.assertTrue (plain_method_break.GetNumLocations() == 1)
-
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/call-function/TestCallCPPFunction.py b/lldb/test/lang/cpp/call-function/TestCallCPPFunction.py
index 6adbcd6..bba2399 100644
--- a/lldb/test/lang/cpp/call-function/TestCallCPPFunction.py
+++ b/lldb/test/lang/cpp/call-function/TestCallCPPFunction.py
@@ -31,9 +31,3 @@
 
         self.expect("expression -- a_function_to_call()",
                     startstr = "(int) $0 = 0")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/chained-calls/TestCppChainedCalls.py b/lldb/test/lang/cpp/chained-calls/TestCppChainedCalls.py
index a6cf56c..fa9338a 100644
--- a/lldb/test/lang/cpp/chained-calls/TestCppChainedCalls.py
+++ b/lldb/test/lang/cpp/chained-calls/TestCppChainedCalls.py
@@ -71,9 +71,3 @@
 
         test_result = frame.EvaluateExpression("get(t) && get(t)")
         self.assertTrue(test_result.IsValid() and test_result.GetValue() == "true", "get(t) && get(t) = true")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/char1632_t/TestChar1632T.py b/lldb/test/lang/cpp/char1632_t/TestChar1632T.py
index f604c34..7392f79 100644
--- a/lldb/test/lang/cpp/char1632_t/TestChar1632T.py
+++ b/lldb/test/lang/cpp/char1632_t/TestChar1632T.py
@@ -3,8 +3,9 @@
 Test that the C++11 support for char16_t and char32_t works correctly.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -85,9 +86,3 @@
         # Check that we can run expressions that return charN_t
         self.expect("expression u'a'",substrs = ['(char16_t) $',"61 u'a'"])
         self.expect("expression U'a'",substrs = ['(char32_t) $',"61 U'a'"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/class_static/TestStaticVariables.py b/lldb/test/lang/cpp/class_static/TestStaticVariables.py
index 88aeb72..c9182fe 100644
--- a/lldb/test/lang/cpp/class_static/TestStaticVariables.py
+++ b/lldb/test/lang/cpp/class_static/TestStaticVariables.py
@@ -2,8 +2,9 @@
 Test display and Python APIs on file and class static variables.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -115,10 +116,3 @@
         val = frame.FindValue("hello_world", lldb.eValueTypeVariableLocal)
         self.DebugSBValue(val)
         self.assertTrue(val.GetName() == 'hello_world')
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/class_types/TestClassTypes.py b/lldb/test/lang/cpp/class_types/TestClassTypes.py
index 2e9353b..6d737e0 100644
--- a/lldb/test/lang/cpp/class_types/TestClassTypes.py
+++ b/lldb/test/lang/cpp/class_types/TestClassTypes.py
@@ -1,7 +1,8 @@
 """Test breakpoint on a class constructor; and variable list the this object."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -210,9 +211,3 @@
         self.assertTrue (frame.IsValid(), "Got a valid frame.")
 
         self.assertTrue ("C::C" in frame.name, "Constructor name includes class name.")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/class_types/TestClassTypesDisassembly.py b/lldb/test/lang/cpp/class_types/TestClassTypesDisassembly.py
index 866b100..031c2b3 100644
--- a/lldb/test/lang/cpp/class_types/TestClassTypesDisassembly.py
+++ b/lldb/test/lang/cpp/class_types/TestClassTypesDisassembly.py
@@ -2,8 +2,9 @@
 Test the lldb disassemble command on each call frame when stopped on C's ctor.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -89,9 +90,3 @@
         # We should be stopped on the ctor function of class C.
         # self.expect("thread backtrace", BACKTRACE_DISPLAYED_CORRECTLY,
         #  substrs = ['C::C'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/diamond/TestDiamond.py b/lldb/test/lang/cpp/diamond/TestDiamond.py
index 6c9f6e4..f4222eb 100644
--- a/lldb/test/lang/cpp/diamond/TestDiamond.py
+++ b/lldb/test/lang/cpp/diamond/TestDiamond.py
@@ -39,9 +39,3 @@
         # Some compilers (for example GCC 4.4.7 and 4.6.1) emit multiple locations for the statement with the ternary
         # operator in the test program, while others emit only 1.
         lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=-1, loc_exact=False)
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/dynamic-value/TestCppValueCast.py b/lldb/test/lang/cpp/dynamic-value/TestCppValueCast.py
index 431f19f..f46bad7 100644
--- a/lldb/test/lang/cpp/dynamic-value/TestCppValueCast.py
+++ b/lldb/test/lang/cpp/dynamic-value/TestCppValueCast.py
@@ -2,9 +2,11 @@
 Test lldb Python API SBValue::Cast(SBType) for C++ types.
 """
 
+import lldb_shared
+
+import unittest2
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -122,10 +124,3 @@
         b_member_val = instanceB.GetChildMemberWithName('m_b_val')
         self.DebugSBValue(b_member_val)
         self.assertTrue(b_member_val.GetValueAsUnsigned(error, 0) == 36)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/dynamic-value/TestDynamicValue.py b/lldb/test/lang/cpp/dynamic-value/TestDynamicValue.py
index f7f9e67..3ef4193 100644
--- a/lldb/test/lang/cpp/dynamic-value/TestDynamicValue.py
+++ b/lldb/test/lang/cpp/dynamic-value/TestDynamicValue.py
@@ -2,9 +2,10 @@
 Use lldb Python API to test dynamic values in C++
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -217,10 +218,3 @@
         contained_b_static_addr = int (contained_b_static.GetValue(), 16)
         
         self.assertTrue (contained_b_addr < contained_b_static_addr)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/enum_types/TestCPP11EnumTypes.py b/lldb/test/lang/cpp/enum_types/TestCPP11EnumTypes.py
index e8072ef..c0fb310 100644
--- a/lldb/test/lang/cpp/enum_types/TestCPP11EnumTypes.py
+++ b/lldb/test/lang/cpp/enum_types/TestCPP11EnumTypes.py
@@ -1,7 +1,8 @@
 """Look up enum type information and check for correct display."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -105,8 +106,3 @@
             self.expect("frame variable day", 'check for valid enumeration value',
                 substrs = [enum_value])
             lldbutil.continue_to_breakpoint (self.process(), bkpt)
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py b/lldb/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
index cc6805e..51135c7 100644
--- a/lldb/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
+++ b/lldb/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
@@ -2,8 +2,9 @@
 Test lldb exception breakpoint command for CPP.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -60,10 +61,3 @@
         self.assertTrue (frame_functions.count ("throws_exception_on_even(int)") == 0, "At catch our throw function is off the stack")
         self.assertTrue (frame_functions.count ("intervening_function(int)") == 0,     "At catch our intervening function is off the stack")
         self.assertTrue (frame_functions.count ("catches_exception(int)") == 1, "At catch our catch function is on the stack")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/global_operators/TestCppGlobalOperators.py b/lldb/test/lang/cpp/global_operators/TestCppGlobalOperators.py
index 6299116..68ff52e 100644
--- a/lldb/test/lang/cpp/global_operators/TestCppGlobalOperators.py
+++ b/lldb/test/lang/cpp/global_operators/TestCppGlobalOperators.py
@@ -52,10 +52,3 @@
 
         test_result = frame.EvaluateExpression("operator==(s2, s3)")
         self.assertTrue(test_result.IsValid() and test_result.GetValue() == "false", "operator==(s2, s3) = false")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py b/lldb/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py
index 931f546..2764f31 100644
--- a/lldb/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py
+++ b/lldb/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py
@@ -63,9 +63,3 @@
 
         # Get frame for current thread
         return thread.GetSelectedFrame()
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/namespace/TestNamespace.py b/lldb/test/lang/cpp/namespace/TestNamespace.py
index fd59881..08825c4 100644
--- a/lldb/test/lang/cpp/namespace/TestNamespace.py
+++ b/lldb/test/lang/cpp/namespace/TestNamespace.py
@@ -2,8 +2,9 @@
 Test the printing of anonymous and named namespace variables.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -106,9 +107,3 @@
 
         self.expect("p variadic_sum",
             patterns = ['\(anonymous namespace\)::variadic_sum\(int, ...\)'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/nsimport/TestCppNsImport.py b/lldb/test/lang/cpp/nsimport/TestCppNsImport.py
index 076356d..3411959 100644
--- a/lldb/test/lang/cpp/nsimport/TestCppNsImport.py
+++ b/lldb/test/lang/cpp/nsimport/TestCppNsImport.py
@@ -98,10 +98,3 @@
         # Test function inside namespace
         test_result = frame.EvaluateExpression("fun_var")
         self.assertTrue(test_result.IsValid() and test_result.GetValueAsSigned() == 5, "fun_var = 5")
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py b/lldb/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
index 38cec0f..7eff685 100644
--- a/lldb/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
+++ b/lldb/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
@@ -34,9 +34,3 @@
 
         self.expect("expression -- Static()",
                     startstr = "(int) $1 = 1")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/rdar12991846/TestRdar12991846.py b/lldb/test/lang/cpp/rdar12991846/TestRdar12991846.py
index 23bf8a1..4ac48e1 100644
--- a/lldb/test/lang/cpp/rdar12991846/TestRdar12991846.py
+++ b/lldb/test/lang/cpp/rdar12991846/TestRdar12991846.py
@@ -3,8 +3,10 @@
 Test that the expression parser returns proper Unicode strings.
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -79,9 +81,3 @@
         if expr == 2: self.expect('expression u"hello"', substrs = ['hello'])
 
         if expr == 3: self.expect('expression U"hello"', substrs = ['hello'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/rvalue-references/TestRvalueReferences.py b/lldb/test/lang/cpp/rvalue-references/TestRvalueReferences.py
index ea9d135..2f62be5 100644
--- a/lldb/test/lang/cpp/rvalue-references/TestRvalueReferences.py
+++ b/lldb/test/lang/cpp/rvalue-references/TestRvalueReferences.py
@@ -47,9 +47,3 @@
 
     def set_breakpoint(self, line):
         lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=1, loc_exact=True)
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/scope/TestCppScope.py b/lldb/test/lang/cpp/scope/TestCppScope.py
index 4d5ea8b..f984eed 100644
--- a/lldb/test/lang/cpp/scope/TestCppScope.py
+++ b/lldb/test/lang/cpp/scope/TestCppScope.py
@@ -65,9 +65,3 @@
             value = frame.EvaluateExpression(name)
             assert_value = global_variables_assert[name]
             self.assertTrue(value.IsValid() and value.GetValueAsSigned() == assert_value, name + " = " + str(assert_value))
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/signed_types/TestSignedTypes.py b/lldb/test/lang/cpp/signed_types/TestSignedTypes.py
index 9c1f683..8ae2e22 100644
--- a/lldb/test/lang/cpp/signed_types/TestSignedTypes.py
+++ b/lldb/test/lang/cpp/signed_types/TestSignedTypes.py
@@ -2,9 +2,10 @@
 Test that variables with signed types display correctly.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -55,10 +56,3 @@
             substrs = ["(int) the_signed_int = 99",
                        "(long) the_signed_long = 99",
                        "(long long) the_signed_long_long = 99"])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/static_members/TestCPPStaticMembers.py b/lldb/test/lang/cpp/static_members/TestCPPStaticMembers.py
index de85a57..f221a1a 100644
--- a/lldb/test/lang/cpp/static_members/TestCPPStaticMembers.py
+++ b/lldb/test/lang/cpp/static_members/TestCPPStaticMembers.py
@@ -1,6 +1,10 @@
 """
 Tests that C++ member and static variables have correct layout and scope.
 """
+
+import lldb_shared
+
+import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -51,10 +55,3 @@
 
     def set_breakpoint(self, line):
         lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=1, loc_exact=False)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/static_methods/TestCPPStaticMethods.py b/lldb/test/lang/cpp/static_methods/TestCPPStaticMethods.py
index c44af75..4887a69 100644
--- a/lldb/test/lang/cpp/static_methods/TestCPPStaticMethods.py
+++ b/lldb/test/lang/cpp/static_methods/TestCPPStaticMethods.py
@@ -34,9 +34,3 @@
 
         self.expect("expression -- my_a.getMemberValue()",
                     startstr = "(int) $1 = 3")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/stl/TestSTL.py b/lldb/test/lang/cpp/stl/TestSTL.py
index b74009f..e326526 100644
--- a/lldb/test/lang/cpp/stl/TestSTL.py
+++ b/lldb/test/lang/cpp/stl/TestSTL.py
@@ -2,8 +2,10 @@
 Test some expressions involving STL data types.
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 import lldbutil
 from lldbtest import *
@@ -112,10 +114,3 @@
 
         # Check that both entries of the dictionary have 'True' as the value.
         self.assertTrue(all(expected_types.values()))
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/stl/TestStdCXXDisassembly.py b/lldb/test/lang/cpp/stl/TestStdCXXDisassembly.py
index abcc300..dad5bf2 100644
--- a/lldb/test/lang/cpp/stl/TestStdCXXDisassembly.py
+++ b/lldb/test/lang/cpp/stl/TestStdCXXDisassembly.py
@@ -2,8 +2,10 @@
 Test the lldb disassemble command on lib stdc++.
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -104,10 +106,3 @@
             else:
                 # This entry is not a Code entry.  Reset SA = None.
                 SA = None
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/this/TestCPPThis.py b/lldb/test/lang/cpp/this/TestCPPThis.py
index e4b5d61..4c99845 100644
--- a/lldb/test/lang/cpp/this/TestCPPThis.py
+++ b/lldb/test/lang/cpp/this/TestCPPThis.py
@@ -51,9 +51,3 @@
     
     def set_breakpoint(self, line):
         lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=1, loc_exact=False)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/unique-types/TestUniqueTypes.py b/lldb/test/lang/cpp/unique-types/TestUniqueTypes.py
index c251563..a1c9f25 100644
--- a/lldb/test/lang/cpp/unique-types/TestUniqueTypes.py
+++ b/lldb/test/lang/cpp/unique-types/TestUniqueTypes.py
@@ -2,7 +2,8 @@
 Test that template instaniations of std::vector<long> and <short> in the same module have the correct types.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 import lldbutil
 from lldbtest import *
@@ -57,10 +58,3 @@
                 continue
             self.expect(x, "Expect type 'short'", exe=False,
                 substrs = ['short'])
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/unsigned_types/TestUnsignedTypes.py b/lldb/test/lang/cpp/unsigned_types/TestUnsignedTypes.py
index d49d3b8..a2c8ff7 100644
--- a/lldb/test/lang/cpp/unsigned_types/TestUnsignedTypes.py
+++ b/lldb/test/lang/cpp/unsigned_types/TestUnsignedTypes.py
@@ -2,9 +2,10 @@
 Test that variables with unsigned types display correctly.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -49,10 +50,3 @@
                        "(unsigned long) the_unsigned_long = 99",
                        "(unsigned long long) the_unsigned_long_long = 99",
                        "(uint32_t) the_uint32 = 99"])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/cpp/wchar_t/TestCxxWCharT.py b/lldb/test/lang/cpp/wchar_t/TestCxxWCharT.py
index 2438873..d2b3ab9 100644
--- a/lldb/test/lang/cpp/wchar_t/TestCxxWCharT.py
+++ b/lldb/test/lang/cpp/wchar_t/TestCxxWCharT.py
@@ -3,8 +3,9 @@
 Test that C++ supports wchar_t correctly.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -69,9 +70,3 @@
         
         self.expect('frame variable wchar_zero', substrs=["L'\\0'"])
         self.expect('expression wchar_zero', substrs=["L'\\0'"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/go/goroutines/TestGoroutines.py b/lldb/test/lang/go/goroutines/TestGoroutines.py
index 05f6aa8..6c26a3a 100644
--- a/lldb/test/lang/go/goroutines/TestGoroutines.py
+++ b/lldb/test/lang/go/goroutines/TestGoroutines.py
@@ -1,7 +1,8 @@
 """Test the Go OS Plugin."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -80,10 +81,3 @@
         self.dbg.HandleCommand("settings set plugin.os.goroutines.enable false")
         self.thread().StepInstruction(False)
         self.assertLess(len(self.process().threads), 20)
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/go/types/TestGoASTContext.py b/lldb/test/lang/go/types/TestGoASTContext.py
index ccfca85..457b6d3 100644
--- a/lldb/test/lang/go/types/TestGoASTContext.py
+++ b/lldb/test/lang/go/types/TestGoASTContext.py
@@ -1,7 +1,8 @@
 """Test the go DWARF type parsing."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -128,10 +129,3 @@
         self.assertEqual(5, v.GetNumChildren())
         for i in xrange(5):
             self.assertEqual(str(i + 1), v.GetChildAtIndex(i).value)
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/mixed/TestMixedLanguages.py b/lldb/test/lang/mixed/TestMixedLanguages.py
index 5d4e284..1fbf118 100644
--- a/lldb/test/lang/mixed/TestMixedLanguages.py
+++ b/lldb/test/lang/mixed/TestMixedLanguages.py
@@ -1,7 +1,8 @@
 """Test that lldb works correctly on compile units form different languages."""
 
+import lldb_shared
+
 import os, time, re
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -51,9 +52,3 @@
         # (note: C++11 is enabled by default for C++).
         self.expect("expr foo != nullptr",
             patterns = ["true"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py b/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
index 281c155..a629dcf 100644
--- a/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
+++ b/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
@@ -1,7 +1,8 @@
 """Test printing ivars and ObjC objects captured in blocks that are made in methods of an ObjC class."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -98,9 +99,3 @@
         ret_value_signed = expr.GetValueAsSigned (error)
         # print 'ret_value_signed = %i' % (ret_value_signed)
         self.assertTrue (ret_value_signed == 5, "The local variable in the block was what we expected.")
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/forward-decl/TestForwardDecl.py b/lldb/test/lang/objc/forward-decl/TestForwardDecl.py
index 4b21e35..6c2f109 100644
--- a/lldb/test/lang/objc/forward-decl/TestForwardDecl.py
+++ b/lldb/test/lang/objc/forward-decl/TestForwardDecl.py
@@ -1,7 +1,8 @@
 """Test that a forward-declared class works when its complete definition is in a library"""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -49,9 +50,3 @@
         # This should display correctly.
         self.expect("expression [j getMember]", VARIABLES_DISPLAYED_CORRECTLY,
             substrs = ["= 0x"])
-            
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/foundation/TestConstStrings.py b/lldb/test/lang/objc/foundation/TestConstStrings.py
index a3780e0..772f5d7 100644
--- a/lldb/test/lang/objc/foundation/TestConstStrings.py
+++ b/lldb/test/lang/objc/foundation/TestConstStrings.py
@@ -3,8 +3,9 @@
 parser.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -48,10 +49,3 @@
 
         self.expect('expression (int)[@"123" length]',
             startstr = "(int) $3 = 3")
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py b/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py
index 3fb6792..cd03e76 100644
--- a/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py
+++ b/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py
@@ -2,8 +2,10 @@
 Test the lldb disassemble command on foundation framework.
 """
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -128,10 +130,3 @@
 
         # Do the disassemble for the currently stopped function.
         self.runCmd("disassemble -f")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/foundation/TestObjCMethods.py b/lldb/test/lang/objc/foundation/TestObjCMethods.py
index 5be2e3c..1417d01 100644
--- a/lldb/test/lang/objc/foundation/TestObjCMethods.py
+++ b/lldb/test/lang/objc/foundation/TestObjCMethods.py
@@ -3,8 +3,9 @@
 Also lookup objective-c data types and evaluate expressions.
 """
 
+import lldb_shared
+
 import os, os.path, time
-import unittest2
 import lldb
 import string
 from lldbtest import *
@@ -79,7 +80,6 @@
         self.expect("thread backtrace", "Stop at -[NSAutoreleasePool release]",
             substrs = ["Foundation`-[NSAutoreleasePool release]"])
 
-    #@unittest2.expectedFailure
     # rdar://problem/8542091
     # rdar://problem/8492646
     def test_data_type_and_expr(self):
@@ -258,9 +258,3 @@
                     print line,
             self.assertTrue(num_errors == 0, "Spurious lookups detected")
             f.close()
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/foundation/TestObjCMethods2.py b/lldb/test/lang/objc/foundation/TestObjCMethods2.py
index 59eb995..9c6ce04 100644
--- a/lldb/test/lang/objc/foundation/TestObjCMethods2.py
+++ b/lldb/test/lang/objc/foundation/TestObjCMethods2.py
@@ -2,8 +2,9 @@
 Test more expression command sequences with objective-c.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -164,9 +165,3 @@
                     error = True, 
                     patterns = ["no known method", "cast the message send to the method's return type"])
         self.runCmd("process continue")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py b/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py
index 0831032..6dd9b90 100644
--- a/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py
+++ b/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py
@@ -2,9 +2,10 @@
 Test SBValue.GetObjectDescription() with the value from SBTarget.FindGlobalVariables().
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -65,10 +66,3 @@
                 print "object description:", v.GetObjectDescription()
             if v.GetName() == 'my_global_str':
                 self.assertTrue(v.GetObjectDescription() == 'This is a global string')
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/foundation/TestRuntimeTypes.py b/lldb/test/lang/objc/foundation/TestRuntimeTypes.py
index 55e9713..a302fcc 100644
--- a/lldb/test/lang/objc/foundation/TestRuntimeTypes.py
+++ b/lldb/test/lang/objc/foundation/TestRuntimeTypes.py
@@ -2,8 +2,9 @@
 Test that Objective-C methods from the runtime work correctly.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -43,9 +44,3 @@
 
         self.expect("po $1", VARIABLES_DISPLAYED_CORRECTLY,
             substrs = ["foo"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/foundation/TestSymbolTable.py b/lldb/test/lang/objc/foundation/TestSymbolTable.py
index 0d23816..3b1d820 100644
--- a/lldb/test/lang/objc/foundation/TestSymbolTable.py
+++ b/lldb/test/lang/objc/foundation/TestSymbolTable.py
@@ -2,8 +2,9 @@
 Test symbol table access for main.m.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -63,10 +64,3 @@
         #print "symbols unaccounted for:", expected_symbols
         self.assertTrue(len(expected_symbols) == 0,
                         "All the known symbols are accounted for")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py b/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py
index 2942650..a36ba61 100644
--- a/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py
+++ b/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py
@@ -1,7 +1,9 @@
 """Test that hidden ivars in a shared library are visible from the main executable."""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -168,10 +170,3 @@
         else:
             self.expect("frame variable *k", VARIABLES_DISPLAYED_CORRECTLY,
                 substrs = ["foo = 2", "bar = 3", '_filteredDataSource = 0x', '"2 elements"'])
-
-                       
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py b/lldb/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py
index b614d75..2ccd8bc 100644
--- a/lldb/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py
+++ b/lldb/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py
@@ -2,9 +2,10 @@
 Test that dynamically discovered ivars of type IMP do not crash LLDB
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 import commands
@@ -57,9 +58,3 @@
         self.expect('disassemble --start-address `((MyClass*)object)->myImp`', substrs=[
             '-[MyClass init]'
         ])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/modules-auto-import/TestModulesAutoImport.py b/lldb/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
index 8a11c24..a836cda 100644
--- a/lldb/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
+++ b/lldb/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
@@ -1,7 +1,9 @@
 """Test that importing modules in Objective-C works as expected."""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 import platform
 import lldbutil
@@ -47,9 +49,3 @@
 
         self.expect("p getpid()", VARIABLES_DISPLAYED_CORRECTLY,
             substrs = ["pid_t"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/modules-incomplete/TestIncompleteModules.py b/lldb/test/lang/objc/modules-incomplete/TestIncompleteModules.py
index 60bb82d..0db2a11 100644
--- a/lldb/test/lang/objc/modules-incomplete/TestIncompleteModules.py
+++ b/lldb/test/lang/objc/modules-incomplete/TestIncompleteModules.py
@@ -1,7 +1,9 @@
 """Test that DWARF types are trusted over module types"""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 import platform
 import lldbutil
@@ -55,9 +57,3 @@
 
         self.expect("expr MAX(2,3)", "#undefd macro was correcltly not found",
             error=True)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py b/lldb/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
index 02ac9d7..b322cf0 100644
--- a/lldb/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
+++ b/lldb/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
@@ -1,7 +1,9 @@
 """Test that inline functions from modules are imported correctly"""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 import platform
 import lldbutil
@@ -48,9 +50,3 @@
 
         self.expect("expr isInline(2)", VARIABLES_DISPLAYED_CORRECTLY,
             substrs = ["4"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/modules/TestObjCModules.py b/lldb/test/lang/objc/modules/TestObjCModules.py
index b3a5d13..aa3351a 100644
--- a/lldb/test/lang/objc/modules/TestObjCModules.py
+++ b/lldb/test/lang/objc/modules/TestObjCModules.py
@@ -1,7 +1,9 @@
 """Test that importing modules in Objective-C works as expected."""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 import platform
 import lldbutil
@@ -65,9 +67,3 @@
 
         self.expect("p [NSURL URLWithString:@\"http://lldb.llvm.org\"].scheme", VARIABLES_DISPLAYED_CORRECTLY,
             substrs = ["http"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc++/TestObjCXX.py b/lldb/test/lang/objc/objc++/TestObjCXX.py
index 1ae73bd..2c5b320 100644
--- a/lldb/test/lang/objc/objc++/TestObjCXX.py
+++ b/lldb/test/lang/objc/objc++/TestObjCXX.py
@@ -2,8 +2,9 @@
 Make sure that ivars of Objective-C++ classes are visible in LLDB.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -28,9 +29,3 @@
 
         self.expect("expr f->f", "Found ivar in class",
             substrs = ["= 3"])
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py b/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
index f7d8d5b..da4b146 100644
--- a/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
+++ b/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
@@ -2,9 +2,10 @@
 Use lldb Python API to test base class resolution for ObjC classes
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -52,9 +53,3 @@
         self.assertTrue(var_pte_type.GetDirectBaseClassAtIndex(0).IsValid(), "Foo * has a valid base class")
 
         self.assertTrue(var_ptr_type.GetDirectBaseClassAtIndex(0).GetName() == var_pte_type.GetDirectBaseClassAtIndex(0).GetName(), "Foo and its pointer type don't agree on their base class")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py b/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
index f07adb6..eeedc9b 100644
--- a/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
+++ b/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
@@ -1,7 +1,8 @@
 """Test that the expression parser doesn't get confused by 'id' and 'Class'"""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -50,9 +51,3 @@
         self.expect("expr (foo)", patterns = ["\(ns::id\) \$.* = 0"])
 
         self.expect("expr id my_id = 0; my_id", patterns = ["\(id\) \$.* = nil"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py b/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py
index 8f816c5..15820b6 100644
--- a/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py
+++ b/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py
@@ -2,9 +2,10 @@
 Use lldb Python API to make sure the dynamic checkers are doing their jobs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -69,9 +70,3 @@
         # Make sure the error is helpful:
         err_string = expr_error.GetCString()
         self.assertTrue ("selector" in err_string)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py b/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py
index 27b0915..70cb513 100644
--- a/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py
+++ b/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py
@@ -1,7 +1,8 @@
 """Test calling functions in class methods."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -51,9 +52,3 @@
         cmd_value = frame.EvaluateExpression ("(int)[Foo doSomethingWithString:@\"Hello\"]")
         self.assertTrue (cmd_value.IsValid())
         self.assertTrue (cmd_value.GetValueAsUnsigned() == 5)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py b/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
index 27f6da1..9e4a7e2 100644
--- a/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
+++ b/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
@@ -2,8 +2,9 @@
 Test that we are able to properly report a usable dynamic type
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -57,9 +58,3 @@
 
         self.assertTrue(object_pointee_type.GetNumberOfFields() == 2, "The dynamic type for NSObject has 2 fields")
         self.assertTrue(base_pointee_type.GetNumberOfFields() == 2, "The dynamic type for Base has 2 fields")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py b/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
index 37a7b07..bd0bbea 100644
--- a/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
+++ b/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
@@ -2,9 +2,10 @@
 Use lldb Python API to test dynamic values in ObjC
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -171,9 +172,3 @@
         derivedValue = object.GetChildMemberWithName ('_derivedValue')
         self.assertTrue (derivedValue)
         self.assertTrue (int (derivedValue.GetValue(), 0) == 30)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py b/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
index 98d6aa5..26e09da 100644
--- a/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
+++ b/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
@@ -1,7 +1,8 @@
 """Test printing ObjC objects that use unbacked properties - so that the static ivar offsets are incorrect."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -69,9 +70,3 @@
         flag2_value = mine_flag2.GetValueAsUnsigned (error)
         self.assertTrue (error.Success())
         self.assertTrue (flag2_value == 7)
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py b/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
index 05cdc4d..dd4620f 100644
--- a/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
+++ b/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
@@ -1,7 +1,8 @@
 """Test printing ObjC objects that use unbacked properties - so that the static ivar offsets are incorrect."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -54,9 +55,3 @@
         ivar_value = ivar.GetValueAsSigned (error)
         self.assertTrue (error.Success())
         self.assertTrue (ivar_value == 3)
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py b/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
index 97d8f92..66dc4d5 100644
--- a/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
+++ b/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
@@ -1,7 +1,9 @@
 """Test that the Objective-C syntax for dictionary/array literals and indexing works"""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 import platform
 import lldbutil
@@ -97,9 +99,3 @@
             substrs = ["4"])
         self.expect("expr -- @((char*)\"Hello world\" + 6)", VARIABLES_DISPLAYED_CORRECTLY,
             substrs = ["NSString", "world"])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py b/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py
index e6a5958..a2769e2 100644
--- a/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py
+++ b/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py
@@ -7,8 +7,9 @@
 optimized it into a register.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -58,10 +59,3 @@
 
         self.expect('expression self->non_member', error=True,
             substrs = ["does not have a member named 'non_member'"])
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-property/TestObjCProperty.py b/lldb/test/lang/objc/objc-property/TestObjCProperty.py
index 0ed0836..f21ab34 100644
--- a/lldb/test/lang/objc/objc-property/TestObjCProperty.py
+++ b/lldb/test/lang/objc/objc-property/TestObjCProperty.py
@@ -2,9 +2,10 @@
 Use lldb Python API to verify that expression evaluation for property references uses the correct getters and setters
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -108,9 +109,3 @@
         idWithProtocol_error = idWithProtocol_value.GetError()
         self.assertTrue (idWithProtocol_error.Success())
         self.assertTrue (idWithProtocol_value.GetTypeName() == "id")
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py b/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
index 6cc550a..a071987 100644
--- a/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
+++ b/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
@@ -1,7 +1,8 @@
 """Test calling functions in static methods with a stripped binary."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -60,9 +61,3 @@
         self.assertTrue (cmd_value.IsValid())
         string_length = cmd_value.GetValueAsUnsigned()
         self.assertTrue (string_length == 27, "Got the right value from another class method on the same class.")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py b/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
index c54d23b..443c4c5 100644
--- a/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
+++ b/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
@@ -1,7 +1,8 @@
 """Test calling functions in static methods."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -56,9 +57,3 @@
         self.assertTrue (cmd_value.IsValid())
         string_length = cmd_value.GetValueAsUnsigned()
         self.assertTrue (string_length == 27, "Got the right value from another class method on the same class.")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py b/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py
index 0fb8bce..015992c 100644
--- a/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py
+++ b/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py
@@ -1,7 +1,8 @@
 """Test stepping through ObjC method dispatch in various forms."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -167,9 +168,3 @@
         thread.StepInto()
         line_number = thread.GetFrameAtIndex(0).GetLineEntry().GetLine()
         self.assertTrue (line_number == self.stepped_past_nil_line, "Step in over dispatch to nil stepped over.")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py b/lldb/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py
index 47d1ea4..be6e87b 100644
--- a/lldb/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py
+++ b/lldb/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py
@@ -1,7 +1,8 @@
 """Test passing structs to Objective-C methods."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -52,9 +53,3 @@
         # Now make sure we can call a method that returns a struct without crashing.
         cmd_value = frame.EvaluateExpression ("[provider getRange]")
         self.assertTrue (cmd_value.IsValid())
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py b/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
index 27a3c3e..d6fafd7 100644
--- a/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
+++ b/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
@@ -1,7 +1,8 @@
 """Test calling functions in class methods."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -48,9 +49,3 @@
         # Now make sure we can call a method that returns a struct without crashing.
         cmd_value = frame.EvaluateExpression ("[provider getRange]")
         self.assertTrue (cmd_value.IsValid())
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/objc-super/TestObjCSuper.py b/lldb/test/lang/objc/objc-super/TestObjCSuper.py
index 1d1f43b..4aba9e9 100644
--- a/lldb/test/lang/objc/objc-super/TestObjCSuper.py
+++ b/lldb/test/lang/objc/objc-super/TestObjCSuper.py
@@ -1,7 +1,8 @@
 """Test calling methods on super."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -54,9 +55,3 @@
         cmd_value = frame.EvaluateExpression ("[super get]")
         self.assertTrue (cmd_value.IsValid())
         self.assertTrue (cmd_value.GetValueAsUnsigned() == 1)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/print-obj/TestPrintObj.py b/lldb/test/lang/objc/print-obj/TestPrintObj.py
index f6143b0..b1205cf 100644
--- a/lldb/test/lang/objc/print-obj/TestPrintObj.py
+++ b/lldb/test/lang/objc/print-obj/TestPrintObj.py
@@ -2,8 +2,9 @@
 Test "print object" where another thread blocks the print object from making progress.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -82,10 +83,3 @@
 
         self.expect("po lock_me", OBJECT_PRINTED_CORRECTLY,
             substrs = ['I am pretty special.'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py b/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
index b33741b..726ec82 100644
--- a/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
+++ b/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
@@ -2,8 +2,9 @@
 Test that objective-c method returning BOOL works correctly.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -40,10 +41,3 @@
 
         # rdar://problem/9691614
         self.runCmd('p (int)[my isValid]')
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py b/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py
index 17d1015..be9b6cf 100644
--- a/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py
+++ b/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py
@@ -2,8 +2,9 @@
 Test that CoreFoundation classes CFGregorianDate and CFRange are not improperly uniqued
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -39,9 +40,3 @@
         self.expect("frame variable cf_range --raw", substrs = ['location','length'])
         # check that printing both does not somehow confuse LLDB
         self.expect("frame variable  --raw", substrs = ['year','month','day','hour','minute','second','location','length'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py b/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py
index 14f85c4..3523695 100644
--- a/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py
+++ b/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py
@@ -2,8 +2,9 @@
 Test that we do not attempt to make a dynamic type for a 'const char*'
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -60,9 +61,3 @@
         # check that expr also gets it right
         self.expect("expr my_foolie", substrs = ['FoolMeOnce *'])
         self.expect("expr -d run -- my_foolie", substrs = ['FoolMeOnce *'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py b/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py
index d1d2292..54fa80c 100644
--- a/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py
+++ b/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py
@@ -2,8 +2,9 @@
 Test that we are able to find out how many children NSWindow has
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -40,9 +41,3 @@
         self.assertTrue(window_dynamic.GetNumChildren() > 1, "NSWindow (dynamic) only has 1 child!")
         self.assertTrue(window.GetChildAtIndex(0).IsValid(), "NSWindow (static) has an invalid child")
         self.assertTrue(window_dynamic.GetChildAtIndex(0).IsValid(), "NSWindow (dynamic) has an invalid child")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/real-definition/TestRealDefinition.py b/lldb/test/lang/objc/real-definition/TestRealDefinition.py
index 8557423..04e4986 100644
--- a/lldb/test/lang/objc/real-definition/TestRealDefinition.py
+++ b/lldb/test/lang/objc/real-definition/TestRealDefinition.py
@@ -1,7 +1,8 @@
 """Test that types defined in shared libraries work correctly."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -81,9 +82,3 @@
         # Break inside the foo function which takes a bar_ptr argument.
         line = line_number('main.m', '// Set breakpoint in main')
         lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lang/objc/self/TestObjCSelf.py b/lldb/test/lang/objc/self/TestObjCSelf.py
index 239e2de..44736fe 100644
--- a/lldb/test/lang/objc/self/TestObjCSelf.py
+++ b/lldb/test/lang/objc/self/TestObjCSelf.py
@@ -34,9 +34,3 @@
 
     def set_breakpoint(self, line):
         lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/linux/builtin_trap/TestBuiltinTrap.py b/lldb/test/linux/builtin_trap/TestBuiltinTrap.py
index 61e92a0..3f7641b 100644
--- a/lldb/test/linux/builtin_trap/TestBuiltinTrap.py
+++ b/lldb/test/linux/builtin_trap/TestBuiltinTrap.py
@@ -3,8 +3,9 @@
 '__builtin_trap' intrinsic, which GCC (4.6) encodes to an illegal opcode.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -46,9 +47,3 @@
 
         # evaluate a local
         self.expect('p foo', substrs = ['= 5'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py b/lldb/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
index 65c145f..8bcf39e 100644
--- a/lldb/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
+++ b/lldb/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
@@ -3,8 +3,9 @@
 over a thread creation instruction.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -61,9 +62,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertEqual(process.GetState(), lldb.eStateExited, PROCESS_EXITED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/lldbinline.py b/lldb/test/lldbinline.py
index 0051c75..3503e8b 100644
--- a/lldb/test/lldbinline.py
+++ b/lldb/test/lldbinline.py
@@ -4,7 +4,6 @@
 from lldbtest import *
 import lldbutil
 import os
-import unittest2
 import sys
 
 def source_type(filename):
diff --git a/lldb/test/lldbpexpect.py b/lldb/test/lldbpexpect.py
index 6563744..f25534e 100644
--- a/lldb/test/lldbpexpect.py
+++ b/lldb/test/lldbpexpect.py
@@ -1,8 +1,9 @@
+import lldb_shared
+
 import lldb
 from lldbtest import *
 import lldbutil
 import os
-import unittest2
 import sys
 import pexpect
 
diff --git a/lldb/test/logging/TestLogging.py b/lldb/test/logging/TestLogging.py
index a76c149..ae8398f 100644
--- a/lldb/test/logging/TestLogging.py
+++ b/lldb/test/logging/TestLogging.py
@@ -2,8 +2,9 @@
 Test lldb logging.  This test just makes sure logging doesn't crash, and produces some output.
 """
 
+import lldb_shared
+
 import os, time, string
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -102,10 +103,3 @@
 
         # check that it is still there
         self.assertTrue(string.find(contents, "bacon") == 0)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
-
diff --git a/lldb/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py b/lldb/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py
index 3907e44..5dae2a0 100644
--- a/lldb/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py
+++ b/lldb/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py
@@ -1,7 +1,8 @@
 """Test that the 'add-dsym', aka 'target symbols add', succeeds in the middle of debug session."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import sys
 from lldbtest import *
@@ -40,9 +41,3 @@
 
         self.expect("frame select",
                     substrs = ['a.out`main at main.c'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py b/lldb/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py
index 3ff481f..6e739f5 100644
--- a/lldb/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py
+++ b/lldb/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py
@@ -2,8 +2,9 @@
 Test that clang produces the __apple accelerator tables, for example, __apple_types, correctly.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 from lldbutil import symbol_type_to_str
@@ -62,10 +63,3 @@
         self.assertTrue(dwarf_section.FindSubSection("__apple_names") and
                         dwarf_section.FindSubSection("__apple_namespac") and
                         dwarf_section.FindSubSection("__apple_objc"))
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/macosx/indirect_symbol/TestIndirectSymbols.py b/lldb/test/macosx/indirect_symbol/TestIndirectSymbols.py
index c28d047..7f1fabc 100644
--- a/lldb/test/macosx/indirect_symbol/TestIndirectSymbols.py
+++ b/lldb/test/macosx/indirect_symbol/TestIndirectSymbols.py
@@ -1,7 +1,8 @@
 """Test stepping and setting breakpoints in indirect and re-exported symbols."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -83,11 +84,3 @@
         self.assertTrue (len(threads) == 1, "Stopped at breakpoint in reexported function target.")
         curr_function = thread.GetFrameAtIndex(0).GetFunctionName()
         self.assertTrue (curr_function == "call_through_indirect_hidden", "Stepped into indirect symbols.")
-
-
- 
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/macosx/order/TestOrderFile.py b/lldb/test/macosx/order/TestOrderFile.py
index d8b7f37..b0d9fd9 100644
--- a/lldb/test/macosx/order/TestOrderFile.py
+++ b/lldb/test/macosx/order/TestOrderFile.py
@@ -2,9 +2,10 @@
 Test that debug symbols have the correct order as specified by the order file.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -31,9 +32,3 @@
                         "Symbols have correct order by the order file")
 
         self.runCmd("run", RUN_COMPLETED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/macosx/queues/TestQueues.py b/lldb/test/macosx/queues/TestQueues.py
index b15c38a..82149e3 100644
--- a/lldb/test/macosx/queues/TestQueues.py
+++ b/lldb/test/macosx/queues/TestQueues.py
@@ -1,7 +1,9 @@
 """Test queues inspection SB APIs."""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 import lldbutil
 from lldbtest import *
@@ -237,9 +239,3 @@
         self.assertTrue(queue_performer_2.GetPendingItemAtIndex(9998).IsValid(), "queue 2's pending item #9998 is valid")
         self.assertTrue(queue_performer_2.GetPendingItemAtIndex(9998).GetAddress().GetSymbol().GetName() == "doing_the_work_2", "queue 2's pending item #0 should be doing_the_work_2")
         self.assertTrue(queue_performer_2.GetPendingItemAtIndex(9999).IsValid() == False, "queue 2's pending item #9999 is invalid")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/macosx/safe-to-func-call/TestSafeFuncCalls.py b/lldb/test/macosx/safe-to-func-call/TestSafeFuncCalls.py
index 8299bd2..6e77790 100644
--- a/lldb/test/macosx/safe-to-func-call/TestSafeFuncCalls.py
+++ b/lldb/test/macosx/safe-to-func-call/TestSafeFuncCalls.py
@@ -1,7 +1,8 @@
 """Test function call thread safety."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -58,9 +59,3 @@
 
     def safe_to_call_func_on_select_thread (self, select_thread):
         self.assertTrue(select_thread.SafeToCallFunctions() == False, "It is not safe to call functions on the select thread")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/macosx/universal/TestUniversal.py b/lldb/test/macosx/universal/TestUniversal.py
index 7c3decf..9628c53 100644
--- a/lldb/test/macosx/universal/TestUniversal.py
+++ b/lldb/test/macosx/universal/TestUniversal.py
@@ -1,7 +1,9 @@
 """Test aspects of lldb commands on universal binaries."""
 
-import os, time
+import lldb_shared
+
 import unittest2
+import os, time
 import lldb
 from lldbtest import *
 import lldbutil
@@ -101,10 +103,3 @@
             substrs = ['Name: eax'])
 
         self.runCmd("continue")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/breakpoint/TestBreakpointAPI.py b/lldb/test/python_api/breakpoint/TestBreakpointAPI.py
index 764fe22..9c29e6c 100644
--- a/lldb/test/python_api/breakpoint/TestBreakpointAPI.py
+++ b/lldb/test/python_api/breakpoint/TestBreakpointAPI.py
@@ -2,9 +2,10 @@
 Test SBBreakpoint APIs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -39,10 +40,3 @@
 
         # Finally make sure the original breakpoint is no longer valid.
         self.assertTrue (not breakpoint, "Breakpoint we deleted is no longer valid.")
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/class_members/TestSBTypeClassMembers.py b/lldb/test/python_api/class_members/TestSBTypeClassMembers.py
index 1361c78..90e79dc 100644
--- a/lldb/test/python_api/class_members/TestSBTypeClassMembers.py
+++ b/lldb/test/python_api/class_members/TestSBTypeClassMembers.py
@@ -2,9 +2,10 @@
 Test SBType APIs to fetch member function types.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -71,9 +72,3 @@
         self.assertTrue(Thingy.GetMemberFunctionAtIndex(0).GetReturnType().GetName() == "id", "Thingy::init returns an id")
         self.assertTrue(Thingy.GetMemberFunctionAtIndex(1).GetNumberOfArguments() == 2, "Thingy::foo takes two arguments")
         self.assertTrue(Thingy.GetMemberFunctionAtIndex(1).GetArgumentTypeAtIndex(0).GetName() == "int", "Thingy::foo takes an int")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
index 147ad8a..e7b141e 100644
--- a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
+++ b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
@@ -11,9 +11,10 @@
 after default construction.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -387,10 +388,3 @@
         # Do fuzz testing on the invalid obj, it should not crash lldb.
         import sb_watchpoint
         sb_watchpoint.fuzz_obj(obj)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/disassemble-raw-data/TestDisassembleRawData.py b/lldb/test/python_api/disassemble-raw-data/TestDisassembleRawData.py
index 51da105..e16c6f0 100644
--- a/lldb/test/python_api/disassemble-raw-data/TestDisassembleRawData.py
+++ b/lldb/test/python_api/disassemble-raw-data/TestDisassembleRawData.py
@@ -2,9 +2,10 @@
 Use lldb Python API to disassemble raw machine code bytes
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -33,9 +34,3 @@
  
         self.assertTrue (inst.GetMnemonic(target) == "movq")
         self.assertTrue (inst.GetOperands(target) == '%' + "rsp, " + '%' + "rbp")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py b/lldb/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
index 4bd4367..d25dabc 100644
--- a/lldb/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
+++ b/lldb/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
@@ -2,9 +2,10 @@
 Use lldb Python API to disassemble raw machine code bytes
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -52,10 +53,3 @@
             print "Disassembled%s" % str(inst)
  
         self.assertTrue (inst.GetMnemonic(target) == "vst1.64")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/event/TestEvents.py b/lldb/test/python_api/event/TestEvents.py
index cc74408..f2d5257 100644
--- a/lldb/test/python_api/event/TestEvents.py
+++ b/lldb/test/python_api/event/TestEvents.py
@@ -2,9 +2,10 @@
 Test lldb Python event APIs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -280,9 +281,3 @@
         # The final judgement. :-)
         self.assertTrue(self.state == 'stopped',
                         "Both expected state changed events received")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/findvalue_duplist/TestSBFrameFindValue.py b/lldb/test/python_api/findvalue_duplist/TestSBFrameFindValue.py
index a2a433f..c5bdcb8 100644
--- a/lldb/test/python_api/findvalue_duplist/TestSBFrameFindValue.py
+++ b/lldb/test/python_api/findvalue_duplist/TestSBFrameFindValue.py
@@ -1,7 +1,8 @@
 """Test that SBFrame::FindValue finds things but does not duplicate the entire variables list"""
 
+import lldb_shared
+
 import os, sys, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -45,9 +46,3 @@
         self.assertTrue(self.frame.GetVariables(True,True,False,True).GetSize() == 2, "variable count is off after failed FindValue()")
         self.assertTrue(self.frame.FindValue("a",lldb.eValueTypeVariableArgument,lldb.eDynamicCanRunTarget).IsValid(), "FindValue() didn't find an argument")
         self.assertTrue(self.frame.GetVariables(True,True,False,True).GetSize() == 2, "variable count is off after successful FindValue()")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/formatters/TestFormattersSBAPI.py b/lldb/test/python_api/formatters/TestFormattersSBAPI.py
index 804f504..b6d693f 100644
--- a/lldb/test/python_api/formatters/TestFormattersSBAPI.py
+++ b/lldb/test/python_api/formatters/TestFormattersSBAPI.py
@@ -1,7 +1,8 @@
 """Test Python APIs for working with formatters"""
 
+import lldb_shared
+
 import os, sys, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -339,10 +340,3 @@
         if self.TraceOn():
              print int_vector
         self.assertTrue(int_vector.GetNumChildren() == 0, 'synthetic vector is still empty')
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/frame/TestFrames.py b/lldb/test/python_api/frame/TestFrames.py
index 42fa8b9..b13edd0 100644
--- a/lldb/test/python_api/frame/TestFrames.py
+++ b/lldb/test/python_api/frame/TestFrames.py
@@ -7,7 +7,6 @@
 
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -200,10 +199,3 @@
 
         # The latest two frames should not be equal.
         self.assertFalse(frameOutOfC.IsEqual(frameNow))
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/frame/inlines/TestInlinedFrame.py b/lldb/test/python_api/frame/inlines/TestInlinedFrame.py
index 98bd8e6..e5e5391 100644
--- a/lldb/test/python_api/frame/inlines/TestInlinedFrame.py
+++ b/lldb/test/python_api/frame/inlines/TestInlinedFrame.py
@@ -2,9 +2,10 @@
 Testlldb Python SBFrame APIs IsInlined() and GetFunctionName().
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -73,9 +74,3 @@
                 print stack_traces2
                 self.expect(stack_traces2, "Second stop at %s:%d" % (self.source, self.second_stop), exe=False,
                             substrs = ['%s:%d' % (self.source, self.second_stop)])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/function_symbol/TestDisasmAPI.py b/lldb/test/python_api/function_symbol/TestDisasmAPI.py
index c8e079f..4018b52 100644
--- a/lldb/test/python_api/function_symbol/TestDisasmAPI.py
+++ b/lldb/test/python_api/function_symbol/TestDisasmAPI.py
@@ -2,9 +2,10 @@
 Test retrieval of SBAddress from function/symbol, disassembly, and SBAddress APIs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -105,9 +106,3 @@
         desc2 = get_description(sa2)
         self.assertTrue(desc1 and desc2 and desc1 == desc2,
                         "SBAddress.GetDescription() API of sa1 and sa2 should return the same string")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/function_symbol/TestSymbolAPI.py b/lldb/test/python_api/function_symbol/TestSymbolAPI.py
index b363c1a..1d7a428 100644
--- a/lldb/test/python_api/function_symbol/TestSymbolAPI.py
+++ b/lldb/test/python_api/function_symbol/TestSymbolAPI.py
@@ -2,9 +2,10 @@
 Test newly added SBSymbol and SBAddress APIs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -75,10 +76,3 @@
         if self.TraceOn():
             print "UUID:", addr_line1.GetModule().GetUUIDString()
         self.assertTrue(addr_line1.GetModule().GetUUIDString() == addr_line2.GetModule().GetUUIDString())
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/hello_world/TestHelloWorld.py b/lldb/test/python_api/hello_world/TestHelloWorld.py
index 8e586c8..1800dd0 100644
--- a/lldb/test/python_api/hello_world/TestHelloWorld.py
+++ b/lldb/test/python_api/hello_world/TestHelloWorld.py
@@ -1,7 +1,8 @@
 """Test Python APIs for target (launch and attach), breakpoint, and process."""
 
+import lldb_shared
+
 import os, sys, time
-import unittest2
 import lldb
 import time
 from lldbtest import *
@@ -139,9 +140,3 @@
         self.expect(stacktraces, exe=False,
             substrs = ['main.c:%d' % self.line2,
                        '(int)argc=3'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/interpreter/TestCommandInterpreterAPI.py b/lldb/test/python_api/interpreter/TestCommandInterpreterAPI.py
index b617a61..1f5171d 100644
--- a/lldb/test/python_api/interpreter/TestCommandInterpreterAPI.py
+++ b/lldb/test/python_api/interpreter/TestCommandInterpreterAPI.py
@@ -1,7 +1,8 @@
 """Test the SBCommandInterpreter APIs."""
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -68,10 +69,3 @@
 
         if self.TraceOn():
             lldbutil.print_stacktraces(process)        
-                        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/lldbutil/frame/TestFrameUtils.py b/lldb/test/python_api/lldbutil/frame/TestFrameUtils.py
index 4b0c460..2812136 100644
--- a/lldb/test/python_api/lldbutil/frame/TestFrameUtils.py
+++ b/lldb/test/python_api/lldbutil/frame/TestFrameUtils.py
@@ -2,8 +2,9 @@
 Test utility functions for the frame object.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -54,10 +55,3 @@
             lldbutil.print_stacktrace(thread)
             print "Current frame: %s" % frame0_args
             print "Parent frame: %s" % parent_args
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/lldbutil/iter/TestLLDBIterator.py b/lldb/test/python_api/lldbutil/iter/TestLLDBIterator.py
index 124f703..c8ee37c 100644
--- a/lldb/test/python_api/lldbutil/iter/TestLLDBIterator.py
+++ b/lldb/test/python_api/lldbutil/iter/TestLLDBIterator.py
@@ -2,9 +2,10 @@
 Test the iteration protocol for some lldb container objects.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -117,9 +118,3 @@
                     print frame
 
         self.assertTrue(stopped_due_to_breakpoint)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/lldbutil/iter/TestRegistersIterator.py b/lldb/test/python_api/lldbutil/iter/TestRegistersIterator.py
index 32d660e..0a49bc2 100644
--- a/lldb/test/python_api/lldbutil/iter/TestRegistersIterator.py
+++ b/lldb/test/python_api/lldbutil/iter/TestRegistersIterator.py
@@ -2,9 +2,10 @@
 Test the iteration protocol for frame registers.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -89,10 +90,3 @@
 
                     # We've finished dumping the registers for frame #0.
                     break
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/lldbutil/process/TestPrintStackTraces.py b/lldb/test/python_api/lldbutil/process/TestPrintStackTraces.py
index 09945f5..7319ce3 100644
--- a/lldb/test/python_api/lldbutil/process/TestPrintStackTraces.py
+++ b/lldb/test/python_api/lldbutil/process/TestPrintStackTraces.py
@@ -2,9 +2,10 @@
 Test SBprocess and SBThread APIs with printing of the stack traces using lldbutil.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -47,10 +48,3 @@
         stacktraces = lldbutil.print_stacktraces(process, string_buffer=True)
         self.expect(stacktraces, exe=False,
             substrs = ['(int)argc=3'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/module_section/TestModuleAndSection.py b/lldb/test/python_api/module_section/TestModuleAndSection.py
index 78e4b22..d1a69f9 100644
--- a/lldb/test/python_api/module_section/TestModuleAndSection.py
+++ b/lldb/test/python_api/module_section/TestModuleAndSection.py
@@ -2,9 +2,10 @@
 Test some SBModule and SBSection APIs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb
 from lldbtest import *
 from lldbutil import symbol_type_to_str
@@ -121,9 +122,3 @@
         INDENT2 = INDENT * 2
         for cu in exe_module.compile_unit_iter():
             print cu
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/objc_type/TestObjCType.py b/lldb/test/python_api/objc_type/TestObjCType.py
index 9b8e915..ed34d43 100644
--- a/lldb/test/python_api/objc_type/TestObjCType.py
+++ b/lldb/test/python_api/objc_type/TestObjCType.py
@@ -2,9 +2,10 @@
 Test SBType for ObjC classes.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -58,9 +59,3 @@
         aBarField = aBarType.GetFieldAtIndex(0)
 
         self.assertTrue(aBarField.GetName() == "_iVar", "The field has the right name")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/process/TestProcessAPI.py b/lldb/test/python_api/process/TestProcessAPI.py
index 0aaeca6..15a70d1 100644
--- a/lldb/test/python_api/process/TestProcessAPI.py
+++ b/lldb/test/python_api/process/TestProcessAPI.py
@@ -2,8 +2,9 @@
 Test SBProcess APIs, including ReadMemory(), WriteMemory(), and others.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbutil import get_stopped_thread, state_type_to_str
 from lldbtest import *
@@ -283,10 +284,3 @@
         num = process.GetNumSupportedHardwareWatchpoints(error)
         if self.TraceOn() and error.Success():
             print "Number of supported hardware watchpoints: %d" % num
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/process/io/TestProcessIO.py b/lldb/test/python_api/process/io/TestProcessIO.py
index 9bd3b82..1fce478 100644
--- a/lldb/test/python_api/process/io/TestProcessIO.py
+++ b/lldb/test/python_api/process/io/TestProcessIO.py
@@ -1,7 +1,8 @@
 """Test Python APIs for process IO."""
 
+import lldb_shared
+
 import os, sys, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -201,9 +202,3 @@
         for line in self.lines:
             check_line = 'input line to stderr: %s' % (line)
             self.assertTrue(check_line in error, "verify stderr line shows up in STDERR")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/rdar-12481949/Test-rdar-12481949.py b/lldb/test/python_api/rdar-12481949/Test-rdar-12481949.py
index 7f9fb1c..1880dc2 100644
--- a/lldb/test/python_api/rdar-12481949/Test-rdar-12481949.py
+++ b/lldb/test/python_api/rdar-12481949/Test-rdar-12481949.py
@@ -2,8 +2,9 @@
 Check that SBValue.GetValueAsSigned() does the right thing for a 32-bit -1.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -49,9 +50,3 @@
         self.assertTrue(self.frame().FindVariable("myvar").GetValueAsUnsigned() != -1, "GetValueAsUnsigned() does not say -1")
         self.assertTrue(self.frame().FindVariable("myvar").GetValueAsUnsigned() == 0xFFFFFFFFFFFFFFFF, "GetValueAsUnsigned() says 0xFFFFFFFFFFFFFFFF")
         self.assertTrue(self.frame().FindVariable("myvar").GetValueAsSigned() != 0xFFFFFFFF, "GetValueAsUnsigned() does not say 0xFFFFFFFF")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/sbdata/TestSBData.py b/lldb/test/python_api/sbdata/TestSBData.py
index f3fd65b..beb9fd5 100644
--- a/lldb/test/python_api/sbdata/TestSBData.py
+++ b/lldb/test/python_api/sbdata/TestSBData.py
@@ -1,7 +1,8 @@
 """Test the SBData APIs."""
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 from math import fabs
@@ -343,9 +344,3 @@
                                                                    arg,
                                                                    stream.GetData()))
         self.assertTrue(expected == result, "%s(error, %s) == %s != %s" % (func.__name__, arg, result, expected))
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/sbvalue_persist/TestSBValuePersist.py b/lldb/test/python_api/sbvalue_persist/TestSBValuePersist.py
index a5881db..eca6f41 100644
--- a/lldb/test/python_api/sbvalue_persist/TestSBValuePersist.py
+++ b/lldb/test/python_api/sbvalue_persist/TestSBValuePersist.py
@@ -1,7 +1,8 @@
 """Test SBValue::Persist"""
 
+import lldb_shared
+
 import os, sys, time
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -69,9 +70,3 @@
         self.assertTrue(bazPersist.GetSummary() == '"85"', "bazPersist != 85")
         
         self.expect("expr *(%s)" % (barPersist.GetName()), substrs = ['= 4'])
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/section/TestSectionAPI.py b/lldb/test/python_api/section/TestSectionAPI.py
index 10870a8..7a6bc3ac 100755
--- a/lldb/test/python_api/section/TestSectionAPI.py
+++ b/lldb/test/python_api/section/TestSectionAPI.py
@@ -2,7 +2,8 @@
 Test SBSection APIs.
 """
 
-import unittest2
+import lldb_shared
+
 from lldbtest import *
 
 class SectionAPITestCase(TestBase):
@@ -36,9 +37,3 @@
 
         self.assertIsNotNone(data_section)
         self.assertEquals(data_section.target_byte_size, 1)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/signals/TestSignalsAPI.py b/lldb/test/python_api/signals/TestSignalsAPI.py
index f8c3db8..7bea793 100644
--- a/lldb/test/python_api/signals/TestSignalsAPI.py
+++ b/lldb/test/python_api/signals/TestSignalsAPI.py
@@ -2,8 +2,9 @@
 Test SBProcess APIs, including ReadMemory(), WriteMemory(), and others.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbutil import get_stopped_thread, state_type_to_str
 from lldbtest import *
@@ -42,10 +43,3 @@
         process.Continue()
         self.assertTrue(process.state == lldb.eStateExited, "The process should have exited")
         self.assertTrue(process.GetExitStatus() == 0, "The process should have returned 0")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/symbol-context/TestSymbolContext.py b/lldb/test/python_api/symbol-context/TestSymbolContext.py
index a92315e..5bca394 100644
--- a/lldb/test/python_api/symbol-context/TestSymbolContext.py
+++ b/lldb/test/python_api/symbol-context/TestSymbolContext.py
@@ -2,9 +2,10 @@
 Test SBSymbolContext APIs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -83,10 +84,3 @@
         symbol = context.GetSymbol()
         self.assertTrue(function.GetName() == symbol.GetName() and symbol.GetName() == 'c',
                         "The symbol name should be 'c'")
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/target/TestTargetAPI.py b/lldb/test/python_api/target/TestTargetAPI.py
index a9f3590..e61d82d 100644
--- a/lldb/test/python_api/target/TestTargetAPI.py
+++ b/lldb/test/python_api/target/TestTargetAPI.py
@@ -2,9 +2,11 @@
 Test SBTarget APIs.
 """
 
+import lldb_shared
+
+import unittest2
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -365,10 +367,3 @@
         desc2 = get_description(symbol2)
         self.assertTrue(desc1 and desc2 and desc1 == desc2,
                         "The two addresses should resolve to the same symbol")
-
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/thread/TestThreadAPI.py b/lldb/test/python_api/thread/TestThreadAPI.py
index 8ace950..2fea893 100644
--- a/lldb/test/python_api/thread/TestThreadAPI.py
+++ b/lldb/test/python_api/thread/TestThreadAPI.py
@@ -2,8 +2,9 @@
 Test SBThread APIs.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbutil import get_stopped_thread, get_caller_symbol
 from lldbtest import *
@@ -240,10 +241,3 @@
         thread.RunToAddress(start_addr)
         self.runCmd("process status")
         #self.runCmd("thread backtrace")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/type/TestTypeList.py b/lldb/test/python_api/type/TestTypeList.py
index f790f5f..4be01a2 100644
--- a/lldb/test/python_api/type/TestTypeList.py
+++ b/lldb/test/python_api/type/TestTypeList.py
@@ -2,9 +2,10 @@
 Test SBType and SBTypeList API.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -105,9 +106,3 @@
         # SBType.GetBasicType() takes an enum 'BasicType' (lldb-enumerations.h).
         int_type = id_type.GetBasicType(lldb.eBasicTypeInt)
         self.assertTrue(id_type == int_type)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/value/TestValueAPI.py b/lldb/test/python_api/value/TestValueAPI.py
index 3c67d69..e6d8825 100644
--- a/lldb/test/python_api/value/TestValueAPI.py
+++ b/lldb/test/python_api/value/TestValueAPI.py
@@ -2,9 +2,10 @@
 Test some SBValue APIs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -129,9 +130,3 @@
         val_a = target.EvaluateExpression('a')
         self.assertTrue(val_s.GetChildMemberWithName('a').AddressOf(), VALID_VARIABLE)
         self.assertTrue(val_a.Cast(val_i.GetType()).AddressOf(), VALID_VARIABLE)
-        
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/value/change_values/TestChangeValueAPI.py b/lldb/test/python_api/value/change_values/TestChangeValueAPI.py
index dd30c9d..0b326b9 100644
--- a/lldb/test/python_api/value/change_values/TestChangeValueAPI.py
+++ b/lldb/test/python_api/value/change_values/TestChangeValueAPI.py
@@ -2,9 +2,10 @@
 Test some SBValue APIs.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -142,9 +143,3 @@
         self.assertTrue(thread == None, "We should not have managed to hit our second breakpoint with sp == 1")
         
         process.Kill()
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py b/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py
index 2329c96..8270ed8 100644
--- a/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py
+++ b/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py
@@ -3,9 +3,10 @@
 supports iteration till the end of list is reached.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -127,9 +128,3 @@
             list.append(int(t.GetChildMemberWithName("id").GetValue()))
 
         self.assertTrue(len(list) == 3)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/value_var_update/TestValueVarUpdate.py b/lldb/test/python_api/value_var_update/TestValueVarUpdate.py
index 76d4d64..9c0123e 100644
--- a/lldb/test/python_api/value_var_update/TestValueVarUpdate.py
+++ b/lldb/test/python_api/value_var_update/TestValueVarUpdate.py
@@ -1,7 +1,8 @@
 """Test SBValue::GetValueDidChange"""
 
+import lldb_shared
+
 import os, sys, time
-import unittest2
 import lldb
 import time
 from lldbtest import *
@@ -54,9 +55,3 @@
         # Check complex type
         self.assertTrue(c.GetChildAtIndex(0).GetChildAtIndex(0).GetValueDidChange() and
                         not c.GetChildAtIndex(1).GetValueDidChange(), "GetValueDidChange() is saying a lie")
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/watchpoint/TestSetWatchpoint.py b/lldb/test/python_api/watchpoint/TestSetWatchpoint.py
index 9e464ad..242b199 100644
--- a/lldb/test/python_api/watchpoint/TestSetWatchpoint.py
+++ b/lldb/test/python_api/watchpoint/TestSetWatchpoint.py
@@ -2,9 +2,10 @@
 Use lldb Python SBValue API to create a watchpoint for read_write of 'globl' var.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -87,10 +88,3 @@
 
         # At this point, the inferior process should have exited.
         self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py b/lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
index 6b4197b..f8ae2a2 100644
--- a/lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
+++ b/lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
@@ -2,9 +2,10 @@
 Use lldb Python SBWatchpoint API to set the ignore count.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -83,10 +84,3 @@
         self.assertTrue(watchpoint.GetWatchSize() == 4)
         self.assertTrue(watchpoint.GetHitCount() == 2)
         print watchpoint
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/watchpoint/TestWatchpointIter.py b/lldb/test/python_api/watchpoint/TestWatchpointIter.py
index 8a68779..0ba73c0 100644
--- a/lldb/test/python_api/watchpoint/TestWatchpointIter.py
+++ b/lldb/test/python_api/watchpoint/TestWatchpointIter.py
@@ -2,9 +2,10 @@
 Use lldb Python SBTarget API to iterate on the watchpoint(s) for the target.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -108,10 +109,3 @@
             self.assertTrue(watchpoint.GetWatchSize() == 4)
             self.assertTrue(watchpoint.GetHitCount() == 1)
             print watchpoint
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py b/lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
index 041e185..dd7c799 100644
--- a/lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
+++ b/lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
@@ -2,8 +2,9 @@
 Test watchpoint condition API.
 """
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 import lldbutil
 from lldbtest import *
@@ -84,10 +85,3 @@
 
         # Verify that the condition is met.
         self.assertTrue(value.GetValueAsUnsigned() == 5)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py b/lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
index 9830dd1..51a8955 100644
--- a/lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
+++ b/lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
@@ -2,9 +2,10 @@
 Use lldb Python SBValue.WatchPointee() API to create a watchpoint for write of '*g_char_ptr'.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -84,10 +85,3 @@
             substrs = [self.violating_func])
 
         # This finishes our test.
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py b/lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
index ebcb6ff..d6a3ca6 100644
--- a/lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
+++ b/lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
@@ -2,9 +2,10 @@
 Use lldb Python SBtarget.WatchAddress() API to create a watchpoint for write of '*g_char_ptr'.
 """
 
+import lldb_shared
+
 import os, time
 import re
-import unittest2
 import lldb, lldbutil
 from lldbtest import *
 
@@ -124,10 +125,3 @@
         self.assertFalse(watchpoint)
         self.expect(error.GetCString(), exe=False,
             substrs = ['watch size of %d is not supported' % 365])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/settings/TestSettings.py b/lldb/test/settings/TestSettings.py
index 21b8b76..a20a903 100644
--- a/lldb/test/settings/TestSettings.py
+++ b/lldb/test/settings/TestSettings.py
@@ -2,8 +2,9 @@
 Test lldb settings command.
 """
 
+import lldb_shared
+
 import os, time, re
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -490,11 +491,3 @@
                                  "target.process.extra-startup-command",
                                  "target.process.thread.step-avoid-regexp",
                                  "target.process.thread.trace-thread"])
-                                 
-        
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/settings/quoting/TestQuoting.py b/lldb/test/settings/quoting/TestQuoting.py
index 44fb01f..7ef861d 100644
--- a/lldb/test/settings/quoting/TestQuoting.py
+++ b/lldb/test/settings/quoting/TestQuoting.py
@@ -2,8 +2,9 @@
 Test quoting of arguments to lldb commands
 """
 
+import lldb_shared
+
 import os, time, re
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -87,9 +88,3 @@
         self.RemoveTempFile("stdout.txt")
 
         self.assertEqual(output, args_out)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/source-manager/TestSourceManager.py b/lldb/test/source-manager/TestSourceManager.py
index c4f7131..ea6499e 100644
--- a/lldb/test/source-manager/TestSourceManager.py
+++ b/lldb/test/source-manager/TestSourceManager.py
@@ -9,7 +9,8 @@
   Test the caching mechanism of the source manager.
 """
 
-import unittest2
+import lldb_shared
+
 import lldb
 from lldbtest import *
 import lldbutil
@@ -168,10 +169,3 @@
         # Display the source code again.  We should see the updated line.
         self.expect("source list -f main.c -l %d" % self.line, SOURCE_DISPLAYED_CORRECTLY,
             substrs = ['Hello lldb'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/terminal/TestSTTYBeforeAndAfter.py b/lldb/test/terminal/TestSTTYBeforeAndAfter.py
index d3accca..49e91cf 100644
--- a/lldb/test/terminal/TestSTTYBeforeAndAfter.py
+++ b/lldb/test/terminal/TestSTTYBeforeAndAfter.py
@@ -2,8 +2,9 @@
 Test that 'stty -a' displays the same output before and after running the lldb command.
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -116,10 +117,3 @@
             if len(tuple[0]) == 0:
                 break
             self.assertTrue(tuple[0] == tuple[1])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/TestMiExit.py b/lldb/test/tools/lldb-mi/TestMiExit.py
index 9c0e173..3d0463d 100644
--- a/lldb/test/tools/lldb-mi/TestMiExit.py
+++ b/lldb/test/tools/lldb-mi/TestMiExit.py
@@ -2,9 +2,10 @@
 Test that the lldb-mi driver exits properly.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiExitTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -82,6 +83,3 @@
         self.runCmd("q")
         import pexpect
         self.expect(pexpect.EOF)
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/TestMiFile.py b/lldb/test/tools/lldb-mi/TestMiFile.py
index 16add25..01f9dc6 100644
--- a/lldb/test/tools/lldb-mi/TestMiFile.py
+++ b/lldb/test/tools/lldb-mi/TestMiFile.py
@@ -2,9 +2,10 @@
 Test lldb-mi -file-xxx commands.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiFileTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -76,6 +77,3 @@
         path = "unknown_dir/%s" % self.myexe
         self.runCmd("-file-exec-and-symbols %s" % path)
         self.expect("\^error")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/TestMiGdbSetShow.py b/lldb/test/tools/lldb-mi/TestMiGdbSetShow.py
index cedfece..45aff71 100644
--- a/lldb/test/tools/lldb-mi/TestMiGdbSetShow.py
+++ b/lldb/test/tools/lldb-mi/TestMiGdbSetShow.py
@@ -2,9 +2,11 @@
 Test lldb-mi -gdb-set and -gdb-show commands.
 """
 
+import lldb_shared
+
+import unittest2
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiGdbSetShowTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -191,6 +193,3 @@
         self.expect("\^done");
         self.runCmd("-var-evaluate-expression var_a");
         self.expect("\^done,value=\"10\"");
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/TestMiLibraryLoaded.py b/lldb/test/tools/lldb-mi/TestMiLibraryLoaded.py
index bc46c71..8413986 100644
--- a/lldb/test/tools/lldb-mi/TestMiLibraryLoaded.py
+++ b/lldb/test/tools/lldb-mi/TestMiLibraryLoaded.py
@@ -2,9 +2,10 @@
 Test lldb-mi =library-loaded notifications.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiLibraryLoadedTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -29,6 +30,3 @@
         def add_slashes(x): return x.replace("\\", "\\\\").replace("\"", "\\\"").replace("\'", "\\\'").replace("\0", "\\\0")
         self.expect([ "=library-loaded,id=\"%s\",target-name=\"%s\",host-name=\"%s\",symbols-loaded=\"1\",symbols-path=\"%s\",loaded_addr=\"-\",size=\"[0-9]+\"" % (add_slashes(path), add_slashes(path), add_slashes(path), add_slashes(symbols_path)),
                       "=library-loaded,id=\"%s\",target-name=\"%s\",host-name=\"%s\",symbols-loaded=\"0\",loaded_addr=\"-\",size=\"[0-9]+\"" % (add_slashes(path), add_slashes(path), add_slashes(path)) ])
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/TestMiPrompt.py b/lldb/test/tools/lldb-mi/TestMiPrompt.py
index 32ae532..6f4bb76 100644
--- a/lldb/test/tools/lldb-mi/TestMiPrompt.py
+++ b/lldb/test/tools/lldb-mi/TestMiPrompt.py
@@ -2,9 +2,10 @@
 Test that the lldb-mi driver prints prompt properly.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiPromptTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -50,6 +51,3 @@
         # Test that lldb-mi is ready after program exited
         self.expect("\*stopped,reason=\"exited-normally\"")
         self.expect(self.child_prompt, exactly = True)
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/breakpoint/TestMiBreak.py b/lldb/test/tools/lldb-mi/breakpoint/TestMiBreak.py
index 57a4925..c08e92e 100644
--- a/lldb/test/tools/lldb-mi/breakpoint/TestMiBreak.py
+++ b/lldb/test/tools/lldb-mi/breakpoint/TestMiBreak.py
@@ -2,9 +2,11 @@
 Test lldb-mi -break-xxx commands.
 """
 
+import lldb_shared
+
+import unittest2
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiBreakTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -247,6 +249,3 @@
         self.runCmd("-exec-continue")
         self.expect("\^running")
         self.expect("\*stopped,reason=\"exited-normally\"")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/control/TestMiExec.py b/lldb/test/tools/lldb-mi/control/TestMiExec.py
index 9e027b2..a17fd66 100644
--- a/lldb/test/tools/lldb-mi/control/TestMiExec.py
+++ b/lldb/test/tools/lldb-mi/control/TestMiExec.py
@@ -2,9 +2,10 @@
 Test lldb-mi -exec-xxx commands.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiExecTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -466,6 +467,3 @@
         self.runCmd("-exec-finish --thread 1 --frame 0")
         self.expect("\^running")
         self.expect("\*stopped,reason=\"end-stepping-range\".+?func=\"main\"")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/data/TestMiData.py b/lldb/test/tools/lldb-mi/data/TestMiData.py
index 9d2cf7e..c26c16e 100644
--- a/lldb/test/tools/lldb-mi/data/TestMiData.py
+++ b/lldb/test/tools/lldb-mi/data/TestMiData.py
@@ -2,9 +2,11 @@
 Test lldb-mi -data-xxx commands.
 """
 
+import lldb_shared
+
+import unittest2
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiDataTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -334,6 +336,3 @@
         # Check 2d array 
         self.runCmd("-data-evaluate-expression array2d")
         self.expect("\^done,value=\"\{\[0\] = \{\[0\] = 1, \[1\] = 2, \[2\] = 3\}, \[1\] = \{\[0\] = 4, \[1\] = 5, \[2\] = 6\}\}\"")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/interpreter/TestMiCliSupport.py b/lldb/test/tools/lldb-mi/interpreter/TestMiCliSupport.py
index 96de442..b28c055 100644
--- a/lldb/test/tools/lldb-mi/interpreter/TestMiCliSupport.py
+++ b/lldb/test/tools/lldb-mi/interpreter/TestMiCliSupport.py
@@ -2,9 +2,10 @@
 Test lldb-mi can interpret CLI commands directly.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiCliSupportTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -209,6 +210,3 @@
         self.expect("\^done")
         self.expect("@\"argc=1\\\\r\\\\n")
         self.expect("\*stopped,reason=\"exited-normally\"")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py b/lldb/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py
index ce277a8..86eb8ff 100644
--- a/lldb/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py
+++ b/lldb/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py
@@ -2,9 +2,10 @@
 Test lldb-mi -interpreter-exec command.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiInterpreterExecTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -231,6 +232,3 @@
         self.expect("\^done")
         self.expect("@\"argc=1\\\\r\\\\n")
         self.expect("\*stopped,reason=\"exited-normally\"")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/lldbmi_testcase.py b/lldb/test/tools/lldb-mi/lldbmi_testcase.py
index c9ba782..e29864a 100644
--- a/lldb/test/tools/lldb-mi/lldbmi_testcase.py
+++ b/lldb/test/tools/lldb-mi/lldbmi_testcase.py
@@ -2,8 +2,9 @@
 Base class for lldb-mi test cases.
 """
 
+import lldb_shared
+
 from lldbtest import *
-import unittest2
 
 class MiTestCaseBase(Base):
 
diff --git a/lldb/test/tools/lldb-mi/signal/TestMiSignal.py b/lldb/test/tools/lldb-mi/signal/TestMiSignal.py
index 16532c8..22f05c3 100644
--- a/lldb/test/tools/lldb-mi/signal/TestMiSignal.py
+++ b/lldb/test/tools/lldb-mi/signal/TestMiSignal.py
@@ -2,9 +2,10 @@
 Test that the lldb-mi handles signals properly.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiSignalTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -197,6 +198,3 @@
         # Exit
         self.runCmd("-gdb-exit")
         self.expect("\^exit")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/stack/TestMiStack.py b/lldb/test/tools/lldb-mi/stack/TestMiStack.py
index 1410c25..f4ebf30 100644
--- a/lldb/test/tools/lldb-mi/stack/TestMiStack.py
+++ b/lldb/test/tools/lldb-mi/stack/TestMiStack.py
@@ -2,9 +2,10 @@
 Test lldb-mi -stack-xxx commands.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiStackTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -481,6 +482,3 @@
         # Test that current frame is #0 and it has the same information
         self.runCmd("-stack-info-frame")
         self.expect("\^done,frame=\{level=\"0\",addr=\"0x[0-9a-f]+\",func=\"main\",file=\"main\.cpp\",fullname=\".+?main\.cpp\",line=\"\d+\"\}")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py b/lldb/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py
index fc732bd..8f34119 100644
--- a/lldb/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py
+++ b/lldb/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py
@@ -2,9 +2,10 @@
 Test lldb-mi startup options.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -295,6 +296,3 @@
         # Delete log
         for f in logFile:
             os.remove(f)
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/symbol/TestMiSymbol.py b/lldb/test/tools/lldb-mi/symbol/TestMiSymbol.py
index 6bfba63..aec5ef1 100644
--- a/lldb/test/tools/lldb-mi/symbol/TestMiSymbol.py
+++ b/lldb/test/tools/lldb-mi/symbol/TestMiSymbol.py
@@ -2,9 +2,10 @@
 Test lldb-mi -symbol-xxx commands.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiSymbolTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -69,6 +70,3 @@
         # Test that -symbol-list-lines fails when file doesn't exist
         self.runCmd("-symbol-list-lines unknown_dir/main.cpp")
         self.expect("\^error,message=\"warning: No source filenames matched 'unknown_dir/main\.cpp'\. error: no source filenames matched any command arguments \"")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/syntax/TestMiSyntax.py b/lldb/test/tools/lldb-mi/syntax/TestMiSyntax.py
index ffcf3fe0..96ff107 100644
--- a/lldb/test/tools/lldb-mi/syntax/TestMiSyntax.py
+++ b/lldb/test/tools/lldb-mi/syntax/TestMiSyntax.py
@@ -2,9 +2,10 @@
 Test that the lldb-mi driver understands MI command syntax.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiSyntaxTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -78,6 +79,3 @@
         # Test that a process output is wrapped correctly
         self.expect("\@\"'\\\\r\\\\n\"")
         self.expect("\@\"` - it's \\\\\\\\n\\\\x12\\\\\"\\\\\\\\\\\\\"")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/target/TestMiTarget.py b/lldb/test/tools/lldb-mi/target/TestMiTarget.py
index a6bff66..0166c8d 100644
--- a/lldb/test/tools/lldb-mi/target/TestMiTarget.py
+++ b/lldb/test/tools/lldb-mi/target/TestMiTarget.py
@@ -2,9 +2,10 @@
 Test lldb-mi -target-xxx commands.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiTargetTestCase(lldbmi_testcase.MiTestCaseBase):
 
diff --git a/lldb/test/tools/lldb-mi/variable/TestMiGdbSetShowPrint.py b/lldb/test/tools/lldb-mi/variable/TestMiGdbSetShowPrint.py
index 93f6ed0..177ddae 100644
--- a/lldb/test/tools/lldb-mi/variable/TestMiGdbSetShowPrint.py
+++ b/lldb/test/tools/lldb-mi/variable/TestMiGdbSetShowPrint.py
@@ -3,9 +3,10 @@
 Test lldb-mi -gdb-set and -gdb-show commands for 'print option-name'.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiGdbSetShowTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -225,6 +226,3 @@
         # Test that -gdb-set print aggregate-field-names fails when option is unknown
         self.runCmd("-gdb-set print aggregate-field-names unknown")
         self.expect("\^error,msg=\"The request ''print' expects option-name and \"on\" or \"off\"' failed.\"")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-mi/variable/TestMiVar.py b/lldb/test/tools/lldb-mi/variable/TestMiVar.py
index 8d464fc..d1d3bdc 100644
--- a/lldb/test/tools/lldb-mi/variable/TestMiVar.py
+++ b/lldb/test/tools/lldb-mi/variable/TestMiVar.py
@@ -2,9 +2,10 @@
 Test lldb-mi -var-xxx commands.
 """
 
+import lldb_shared
+
 import lldbmi_testcase
 from lldbtest import *
-import unittest2
 
 class MiVarTestCase(lldbmi_testcase.MiTestCaseBase):
 
@@ -353,6 +354,3 @@
         # Test for std::string
         self.runCmd("-var-create - * std_string")
         self.expect('\^done,name="var\d+",numchild="[0-9]+",value="\\\\"hello\\\\"",type="std::[\S]*?string",thread-id="1",has_more="0"')
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGDBRemoteMemoryRead.py b/lldb/test/tools/lldb-server/TestGDBRemoteMemoryRead.py
index 33baaa5..33a6832 100644
--- a/lldb/test/tools/lldb-server/TestGDBRemoteMemoryRead.py
+++ b/lldb/test/tools/lldb-server/TestGDBRemoteMemoryRead.py
@@ -2,8 +2,9 @@
 Tests the binary ($x) and hex ($m) memory read packets of the remote stub
 """
 
+import lldb_shared
+
 import os
-import unittest2
 import lldb
 from lldbtest import *
 import lldbutil
@@ -36,10 +37,3 @@
 
         process.Continue()
         self.assertEqual(process.GetState(), lldb.eStateExited, "Process exited")
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteAttach.py b/lldb/test/tools/lldb-server/TestGdbRemoteAttach.py
index dab3ff4..797814b 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteAttach.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteAttach.py
@@ -1,6 +1,7 @@
+import lldb_shared
+
 import gdbremote_testcase
 import lldbgdbserverutils
-import unittest2
 
 from lldbtest import *
 
@@ -55,7 +56,3 @@
         self.build()
         self.set_inferior_startup_attach_manually()
         self.attach_with_vAttach()
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py b/lldb/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py
index 0a185b5..782a3d7 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 from lldbtest import *
@@ -197,7 +197,3 @@
         self.build()
         self.set_inferior_startup_launch()
         self.auxv_chunked_reads_work()
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py b/lldb/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
index 06b103d..9218dbf 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 from lldbtest import *
@@ -140,7 +140,3 @@
         self.build()
         self.set_inferior_startup_launch()
         self.stop_notification_contains_sp_register()
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteKill.py b/lldb/test/tools/lldb-server/TestGdbRemoteKill.py
index 459879e..f4de5a0 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteKill.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteKill.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 import lldbgdbserverutils
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteProcessInfo.py b/lldb/test/tools/lldb-server/TestGdbRemoteProcessInfo.py
index 4aa9218..3ef299e 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteProcessInfo.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteProcessInfo.py
@@ -1,7 +1,8 @@
+import lldb_shared
+
 import gdbremote_testcase
 import lldbgdbserverutils
 import sys
-import unittest2
 
 from lldbtest import *
 
@@ -174,7 +175,3 @@
         self.init_llgs_test()
         self.build()
         self.qProcessInfo_does_not_contain_keys(set(['cputype', 'cpusubtype']))
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteRegisterState.py b/lldb/test/tools/lldb-server/TestGdbRemoteRegisterState.py
index a6d6222..f2d44cad 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteRegisterState.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteRegisterState.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 from lldbtest import *
@@ -122,7 +122,3 @@
         self.build()
         self.set_inferior_startup_launch()
         self.grp_register_save_restore_works(USE_THREAD_SUFFIX)
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteSingleStep.py b/lldb/test/tools/lldb-server/TestGdbRemoteSingleStep.py
index 53aa4b5..98ea7df 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteSingleStep.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteSingleStep.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 from lldbtest import *
@@ -21,6 +21,3 @@
         self.build()
         self.set_inferior_startup_launch()
         self.single_step_only_steps_one_instruction(use_Hc_packet=True, step_instruction="s")
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py b/lldb/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
index 7e3f4dd..ab4f457 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 from lldbtest import *
@@ -160,7 +160,3 @@
         self.build()
         self.set_inferior_startup_launch()
         self.stop_reply_reports_correct_threads(5)
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py b/lldb/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py
index 915b1a1..d8abdfc 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py
@@ -1,6 +1,8 @@
-import sys
-import unittest2
+import lldb_shared
 
+import sys
+
+import unittest2
 import gdbremote_testcase
 from lldbtest import *
 
@@ -144,7 +146,3 @@
         self.build()
         self.set_inferior_startup_launch()
         self.qThreadStopInfo_has_valid_thread_names(self.THREAD_COUNT, "a.out")
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemote_vCont.py b/lldb/test/tools/lldb-server/TestGdbRemote_vCont.py
index 8716ee1..370d945 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemote_vCont.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemote_vCont.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 from lldbtest import *
@@ -112,7 +112,3 @@
         self.build()
         self.set_inferior_startup_launch()
         self.single_step_only_steps_one_instruction(use_Hc_packet=False, step_instruction="vCont;s:{thread}")
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/TestLldbGdbServer.py b/lldb/test/tools/lldb-server/TestLldbGdbServer.py
index bbe8e77..9d8f418 100644
--- a/lldb/test/tools/lldb-server/TestLldbGdbServer.py
+++ b/lldb/test/tools/lldb-server/TestLldbGdbServer.py
@@ -10,11 +10,13 @@
 the initial set of tests implemented.
 """
 
+import lldb_shared
+
+import unittest2
 import gdbremote_testcase
 import lldbgdbserverutils
 import platform
 import signal
-import unittest2
 from lldbtest import *
 
 class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
@@ -1465,7 +1467,3 @@
         self.build()
         self.set_inferior_startup_launch()
         self.P_and_p_thread_suffix_work()
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/commandline/TestStubReverseConnect.py b/lldb/test/tools/lldb-server/commandline/TestStubReverseConnect.py
index 6e793b9..34850c7 100644
--- a/lldb/test/tools/lldb-server/commandline/TestStubReverseConnect.py
+++ b/lldb/test/tools/lldb-server/commandline/TestStubReverseConnect.py
@@ -83,7 +83,3 @@
         self.init_llgs_test(use_named_pipe=False)
         self.set_inferior_startup_launch()
         self.reverse_connect_works()
-
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/tools/lldb-server/commandline/TestStubSetSID.py b/lldb/test/tools/lldb-server/commandline/TestStubSetSID.py
index 32e4818..401206b 100644
--- a/lldb/test/tools/lldb-server/commandline/TestStubSetSID.py
+++ b/lldb/test/tools/lldb-server/commandline/TestStubSetSID.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 import lldbgdbserverutils
diff --git a/lldb/test/tools/lldb-server/gdbremote_testcase.py b/lldb/test/tools/lldb-server/gdbremote_testcase.py
index 159a517..91f36c0 100644
--- a/lldb/test/tools/lldb-server/gdbremote_testcase.py
+++ b/lldb/test/tools/lldb-server/gdbremote_testcase.py
@@ -2,6 +2,8 @@
 Base class for gdb-remote test cases.
 """
 
+import lldb_shared
+
 import errno
 import os
 import os.path
@@ -16,7 +18,6 @@
 import sys
 import tempfile
 import time
-import unittest2
 from lldbtest import *
 from lldbgdbserverutils import *
 import logging
diff --git a/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py b/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
index 2948aff..e07fe8b 100644
--- a/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
+++ b/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 import signal
diff --git a/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py b/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
index 322f41cd..0c0bef4 100644
--- a/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
+++ b/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
@@ -1,4 +1,4 @@
-import unittest2
+import lldb_shared
 
 import gdbremote_testcase
 import signal
diff --git a/lldb/test/tools/lldb-server/test/test_lldbgdbserverutils.py b/lldb/test/tools/lldb-server/test/test_lldbgdbserverutils.py
index 034714e..f5b4ba3 100644
--- a/lldb/test/tools/lldb-server/test/test_lldbgdbserverutils.py
+++ b/lldb/test/tools/lldb-server/test/test_lldbgdbserverutils.py
@@ -1,9 +1,10 @@
+import lldb_shared
+
+import unittest2
 import os.path
 import re
 import sys
 
-import unittest2
-
 from lldbgdbserverutils import *
 
 
@@ -44,6 +45,3 @@
         except AssertionError:
             # okay
             return None
-
-if __name__ == '__main__':
-    unittest2.main()
diff --git a/lldb/test/types/HideTestFailures.py b/lldb/test/types/HideTestFailures.py
index 38adfc5..1c2e6ca 100644
--- a/lldb/test/types/HideTestFailures.py
+++ b/lldb/test/types/HideTestFailures.py
@@ -2,8 +2,9 @@
 Test that variables of integer basic types are displayed correctly.
 """
 
+import lldb_shared
+
 import AbstractBase
-import unittest2
 import sys
 import lldb
 from lldbtest import *
@@ -73,9 +74,3 @@
         self.build(dictionary=d)
         self.setTearDownCleanup(dictionary=d)
         self.generic_type_tester(set(['long long']))
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/types/TestFloatTypes.py b/lldb/test/types/TestFloatTypes.py
index ee2239b..fcac507 100644
--- a/lldb/test/types/TestFloatTypes.py
+++ b/lldb/test/types/TestFloatTypes.py
@@ -2,8 +2,9 @@
 Test that variables of floating point types are displayed correctly.
 """
 
+import lldb_shared
+
 import AbstractBase
-import unittest2
 import lldb
 import sys
 from lldbtest import *
@@ -36,9 +37,3 @@
     def test_double_type_from_block(self):
         """Test that double-type variables are displayed correctly from a block."""
         self.build_and_run('double.cpp', set(['double']), bc=True)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/types/TestFloatTypesExpr.py b/lldb/test/types/TestFloatTypesExpr.py
index 27ae16e..52ba347 100644
--- a/lldb/test/types/TestFloatTypesExpr.py
+++ b/lldb/test/types/TestFloatTypesExpr.py
@@ -2,8 +2,9 @@
 Test that variable expressions of floating point types are evaluated correctly.
 """
 
+import lldb_shared
+
 import AbstractBase
-import unittest2
 import lldb
 import sys
 from lldbtest import *
@@ -39,9 +40,3 @@
     def test_double_type_from_block(self):
         """Test that double-type variables are displayed correctly from a block."""
         self.build_and_run_expr('double.cpp', set(['double']), bc=True)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/types/TestIntegerTypes.py b/lldb/test/types/TestIntegerTypes.py
index 69b1af5..d592f39 100644
--- a/lldb/test/types/TestIntegerTypes.py
+++ b/lldb/test/types/TestIntegerTypes.py
@@ -2,8 +2,9 @@
 Test that variables of integer basic types are displayed correctly.
 """
 
+import lldb_shared
+
 import AbstractBase
-import unittest2
 import lldb
 import sys
 from lldbtest import *
@@ -108,10 +109,3 @@
     def test_unsigned_long_long_type_from_block(self):
         """Test that 'unsigned_long_long'-type variables are displayed correctly from a block."""
         self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long']), bc=True)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/types/TestIntegerTypesExpr.py b/lldb/test/types/TestIntegerTypesExpr.py
index 3162c41..a252ca8 100644
--- a/lldb/test/types/TestIntegerTypesExpr.py
+++ b/lldb/test/types/TestIntegerTypesExpr.py
@@ -2,8 +2,9 @@
 Test that variable expressions of integer basic types are evaluated correctly.
 """
 
+import lldb_shared
+
 import AbstractBase
-import unittest2
 import lldb
 import sys
 from lldbtest import *
@@ -108,10 +109,3 @@
     def test_unsigned_long_long_type_from_block(self):
         """Test that 'unsigned_long_long'-type variables are displayed correctly from a block."""
         self.build_and_run_expr('unsigned_long_long.cpp', set(['unsigned', 'long long']), bc=True)
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/types/TestRecursiveTypes.py b/lldb/test/types/TestRecursiveTypes.py
index 5ded66d..f115c9b 100644
--- a/lldb/test/types/TestRecursiveTypes.py
+++ b/lldb/test/types/TestRecursiveTypes.py
@@ -2,10 +2,11 @@
 Test that recursive types are handled correctly.
 """
 
+import lldb_shared
+
 import lldb
 import lldbutil
 import sys
-import unittest2
 from lldbtest import *
 
 class RecursiveTypesTestCase(TestBase):
@@ -46,9 +47,3 @@
 
         self.expect("print tpi", RUN_SUCCEEDED)
         self.expect("print *tpi", RUN_SUCCEEDED)
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()
diff --git a/lldb/test/warnings/uuid/TestAddDsymCommand.py b/lldb/test/warnings/uuid/TestAddDsymCommand.py
index 774e7725..7ea233a 100644
--- a/lldb/test/warnings/uuid/TestAddDsymCommand.py
+++ b/lldb/test/warnings/uuid/TestAddDsymCommand.py
@@ -1,7 +1,8 @@
 """Test that the 'add-dsym', aka 'target symbols add', command informs the user about success or failure."""
 
+import lldb_shared
+
 import os, time
-import unittest2
 import lldb
 from lldbtest import *
 
@@ -102,10 +103,3 @@
         right_path = "%s.dSYM" % exe_name
         self.expect("add-dsym " + right_path,
             substrs = ['symbol file', 'has been added to'])
-
-
-if __name__ == '__main__':
-    import atexit
-    lldb.SBDebugger.Initialize()
-    atexit.register(lambda: lldb.SBDebugger.Terminate())
-    unittest2.main()