summaryrefslogtreecommitdiffstats
path: root/lldb/test
diff options
context:
space:
mode:
authorDaniel Malea <daniel.malea@intel.com>2013-08-26 23:57:52 +0000
committerDaniel Malea <daniel.malea@intel.com>2013-08-26 23:57:52 +0000
commite0f8f574c7f41f5b61ec01aa290d52fc55a3f3c9 (patch)
treec519b347e7428c3b28956c9165b661b11b468470 /lldb/test
parent6b16b43ef95d2ffbad889601f26786ecdbd914b4 (diff)
downloadbcm5719-llvm-e0f8f574c7f41f5b61ec01aa290d52fc55a3f3c9.tar.gz
bcm5719-llvm-e0f8f574c7f41f5b61ec01aa290d52fc55a3f3c9.zip
merge lldb-platform-work branch (and assorted fixes) into trunk
Summary: This merge brings in the improved 'platform' command that knows how to interface with remote machines; that is, query OS/kernel information, push and pull files, run shell commands, etc... and implementation for the new communication packets that back that interface, at least on Darwin based operating systems via the POSIXPlatform class. Linux support is coming soon. Verified the test suite runs cleanly on Linux (x86_64), build OK on Mac OS X Mountain Lion. Additional improvements (not in the source SVN branch 'lldb-platform-work'): - cmake build scripts for lldb-platform - cleanup test suite - documentation stub for qPlatform_RunCommand - use log class instead of printf() directly - reverted work-in-progress-looking changes from test/types/TestAbstract.py that work towards running the test suite remotely. - add new logging category 'platform' Reviewers: Matt Kopec, Greg Clayton Review: http://llvm-reviews.chandlerc.com/D1493 llvm-svn: 189295
Diffstat (limited to 'lldb/test')
-rw-r--r--lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py3
-rw-r--r--lldb/test/api/multithreaded/TestMultithreaded.py9
-rwxr-xr-xlldb/test/dotest.py22
-rw-r--r--lldb/test/functionalities/abbreviation/TestAbbreviations.py5
-rw-r--r--lldb/test/functionalities/conditional_break/.lldb2
-rw-r--r--lldb/test/functionalities/conditional_break/TestConditionalBreak.py4
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py2
-rw-r--r--lldb/test/functionalities/inferior-changed/TestInferiorChanged.py7
-rw-r--r--lldb/test/functionalities/load_unload/TestLoadUnload.py5
-rw-r--r--lldb/test/functionalities/process_launch/TestProcessLaunch.py2
-rw-r--r--lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py8
-rw-r--r--lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py7
-rw-r--r--lldb/test/lang/c/blocks/TestBlocks.py2
-rw-r--r--lldb/test/lldbtest.py74
-rw-r--r--lldb/test/macosx/universal/TestUniversal.py3
-rw-r--r--lldb/test/python_api/hello_world/TestHelloWorld.py4
-rw-r--r--lldb/test/python_api/process/TestProcessAPI.py4
-rw-r--r--lldb/test/python_api/target/TestTargetAPI.py2
-rw-r--r--lldb/test/settings/TestSettings.py3
19 files changed, 141 insertions, 27 deletions
diff --git a/lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py b/lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py
index 9df567c3f3a..63618e05c36 100644
--- a/lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py
+++ b/lldb/test/api/check_public_api_headers/TestPublicAPIHeaders.py
@@ -22,6 +22,9 @@ class SBDirCheckerCase(TestBase):
def test_sb_api_directory(self):
"""Test the SB API directory and make sure there's no unwanted stuff."""
+ # Only proceed if this is "darwin", "x86_64", and local platform.
+ if not (sys.platform.startswith("darwin") and self.getArchitecture() == "x86_64" and not lldb.test_remote):
+ self.skipTest("This test is only for LLDB.framework built 64-bit and !lldb.test_remote")
if self.getArchitecture() == "i386":
self.skipTest("LLDB is 64-bit and cannot be linked to 32-bit test program.")
diff --git a/lldb/test/api/multithreaded/TestMultithreaded.py b/lldb/test/api/multithreaded/TestMultithreaded.py
index bb5c26271e5..b8d74ef7655 100644
--- a/lldb/test/api/multithreaded/TestMultithreaded.py
+++ b/lldb/test/api/multithreaded/TestMultithreaded.py
@@ -61,12 +61,13 @@ class SBBreakpointCallbackCase(TestBase):
exe = [os.path.join(os.getcwd(), test_name), self.inferior]
+ env = {self.dylibPath : self.getLLDBLibraryEnvVal()}
if self.TraceOn():
print "Running test %s" % " ".join(exe)
-
- check_call(exe, env={self.dylibPath : self.getLLDBLibraryEnvVal()})
-
-
+ check_call(exe, env=env)
+ else:
+ with open(os.devnull, 'w') as fnull:
+ check_call(exe, env=env, stdout=fnull, stderr=fnull)
def build_program(self, sources, program):
return self.buildDriver(sources, program)
diff --git a/lldb/test/dotest.py b/lldb/test/dotest.py
index 4bc4dab2dd6..1c412f4c2fe 100755
--- a/lldb/test/dotest.py
+++ b/lldb/test/dotest.py
@@ -154,6 +154,9 @@ config = {}
# The pre_flight and post_flight functions come from reading a config file.
pre_flight = None
post_flight = None
+# So do the lldbtest_remote_sandbox and lldbtest_remote_shell_template variables.
+lldbtest_remote_sandbox = None
+lldbtest_remote_shell_template = None
# The 'archs' and 'compilers' can be specified via either command line or configFile,
# with the command line overriding the configFile. The corresponding options can be
@@ -745,11 +748,11 @@ def parseOptionsAndInitTestdirs():
# respectively.
#
# See also lldb-trunk/examples/test/usage-config.
- global config, pre_flight, post_flight
+ global config, pre_flight, post_flight, lldbtest_remote_sandbox, lldbtest_remote_shell_template
if configFile:
# Pass config (a dictionary) as the locals namespace for side-effect.
execfile(configFile, globals(), config)
- print "config:", config
+ #print "config:", config
if "pre_flight" in config:
pre_flight = config["pre_flight"]
if not callable(pre_flight):
@@ -760,6 +763,10 @@ def parseOptionsAndInitTestdirs():
if not callable(post_flight):
print "fatal error: post_flight is not callable, exiting."
sys.exit(1)
+ if "lldbtest_remote_sandbox" in config:
+ lldbtest_remote_sandbox = config["lldbtest_remote_sandbox"]
+ if "lldbtest_remote_shell_template" in config:
+ lldbtest_remote_shell_template = config["lldbtest_remote_shell_template"]
#print "sys.stderr:", sys.stderr
#print "sys.stdout:", sys.stdout
@@ -1199,6 +1206,17 @@ if not noHeaders:
print "lldb.pre_flight:", getsource_if_available(lldb.pre_flight)
print "lldb.post_flight:", getsource_if_available(lldb.post_flight)
+# If either pre_flight or post_flight is defined, set lldb.test_remote to True.
+if lldb.pre_flight or lldb.post_flight:
+ lldb.test_remote = True
+else:
+ lldb.test_remote = False
+
+# So do the lldbtest_remote_sandbox and lldbtest_remote_shell_template variables.
+lldb.lldbtest_remote_sandbox = lldbtest_remote_sandbox
+lldb.lldbtest_remote_sandboxed_executable = None
+lldb.lldbtest_remote_shell_template = lldbtest_remote_shell_template
+
# Put all these test decorators in the lldb namespace.
lldb.dont_do_python_api_test = dont_do_python_api_test
lldb.just_do_python_api_test = just_do_python_api_test
diff --git a/lldb/test/functionalities/abbreviation/TestAbbreviations.py b/lldb/test/functionalities/abbreviation/TestAbbreviations.py
index 4df8cbc006a..38b9005537a 100644
--- a/lldb/test/functionalities/abbreviation/TestAbbreviations.py
+++ b/lldb/test/functionalities/abbreviation/TestAbbreviations.py
@@ -90,7 +90,10 @@ class AbbreviationsTestCase(TestBase):
def running_abbreviations (self):
exe = os.path.join (os.getcwd(), "a.out")
- self.expect("fil " + exe,
+ # Use "file", i.e., no abbreviation. We're exactly matching the command
+ # verbatim when dealing with remote testsuite execution.
+ # For more details, see TestBase.runCmd().
+ self.expect("file " + exe,
patterns = [ "Current executable set to .*a.out.*" ])
# By default, the setting interpreter.expand-regex-aliases is false.
diff --git a/lldb/test/functionalities/conditional_break/.lldb b/lldb/test/functionalities/conditional_break/.lldb
index 52fc2ddd647..d077db551cb 100644
--- a/lldb/test/functionalities/conditional_break/.lldb
+++ b/lldb/test/functionalities/conditional_break/.lldb
@@ -1,4 +1,4 @@
-file a.out
+#file a.out
breakpoint set -n c
#script import sys, os
#script sys.path.append(os.path.join(os.getcwd(), os.pardir))
diff --git a/lldb/test/functionalities/conditional_break/TestConditionalBreak.py b/lldb/test/functionalities/conditional_break/TestConditionalBreak.py
index b9625cff09b..806cb436fd6 100644
--- a/lldb/test/functionalities/conditional_break/TestConditionalBreak.py
+++ b/lldb/test/functionalities/conditional_break/TestConditionalBreak.py
@@ -114,6 +114,10 @@ class ConditionalBreakTestCase(TestBase):
if not self.TraceOn():
self.HideStdout()
+
+ # Separate out the "file a.out" command from .lldb file, for the sake of
+ # remote testsuite.
+ self.runCmd("file a.out")
self.runCmd("command source .lldb")
self.runCmd ("break list")
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 dcab8c1a009..2d5f2965f02 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py
@@ -447,7 +447,7 @@ class ObjCDataFormatterTestCase(TestBase):
self.expect('frame variable bundle_string bundle_url main_bundle',
substrs = ['(NSBundle *) bundle_string = ',' @"/System/Library/Frameworks/Accelerate.framework"',
'(NSBundle *) bundle_url = ',' @"/System/Library/Frameworks/Cocoa.framework"',
- '(NSBundle *) main_bundle = ','test/functionalities/data-formatter/data-formatter-objc'])
+ '(NSBundle *) main_bundle = ','data-formatter-objc'])
def nsexception_data_formatter_commands(self):
self.expect('frame variable except0 except1 except2 except3',
diff --git a/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py b/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py
index b51f4ca13de..58b9ffa7fd7 100644
--- a/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py
+++ b/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py
@@ -44,8 +44,8 @@ class ChangedInferiorTestCase(TestBase):
def inferior_crashing(self):
"""Inferior crashes upon launching; lldb should catch the event and stop."""
- exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+ self.exe = os.path.join(os.getcwd(), "a.out")
+ self.runCmd("file " + self.exe, CURRENT_EXECUTABLE_SET)
self.runCmd("run", RUN_SUCCEEDED)
@@ -67,6 +67,9 @@ class ChangedInferiorTestCase(TestBase):
def inferior_not_crashing(self):
"""Test lldb reloads the inferior after it was changed during the session."""
self.runCmd("process kill")
+ # Prod the lldb-platform that we have a newly built inferior ready.
+ if lldb.lldbtest_remote_sandbox:
+ self.runCmd("file " + self.exe, CURRENT_EXECUTABLE_SET)
self.runCmd("run", RUN_SUCCEEDED)
self.runCmd("process status")
diff --git a/lldb/test/functionalities/load_unload/TestLoadUnload.py b/lldb/test/functionalities/load_unload/TestLoadUnload.py
index 6fc1124a4f7..e6015a8cebe 100644
--- a/lldb/test/functionalities/load_unload/TestLoadUnload.py
+++ b/lldb/test/functionalities/load_unload/TestLoadUnload.py
@@ -27,6 +27,7 @@ class LoadUnloadTestCase(TestBase):
@skipIfFreeBSD # llvm.org/pr14424 - missing FreeBSD Makefiles/testcase support
@skipIfLinux # llvm.org/pr14424 - missing linux Makefiles/testcase support
+ @not_remote_testsuite_ready
def test_modules_search_paths(self):
"""Test target modules list after loading a different copy of the library libd.dylib, and verifies that it works with 'target modules search-paths add'."""
@@ -81,6 +82,7 @@ class LoadUnloadTestCase(TestBase):
@skipIfFreeBSD # llvm.org/pr14424 - missing FreeBSD Makefiles/testcase support
@skipIfLinux # llvm.org/pr14424 - missing linux Makefiles/testcase support
+ @not_remote_testsuite_ready
def test_dyld_library_path(self):
"""Test DYLD_LIBRARY_PATH after moving libd.dylib, which defines d_function, somewhere else."""
@@ -135,6 +137,7 @@ class LoadUnloadTestCase(TestBase):
substrs = [special_dir, os.path.basename(new_dylib)])
@skipIfFreeBSD # llvm.org/pr14424 - missing FreeBSD Makefiles/testcase support
+ @not_remote_testsuite_ready
@skipIfLinux # llvm.org/pr14424 - missing linux Makefiles/testcase support
def test_lldb_process_load_and_unload_commands(self):
"""Test that lldb process load/unload command work correctly."""
@@ -183,6 +186,7 @@ class LoadUnloadTestCase(TestBase):
self.runCmd("process continue")
@skipIfFreeBSD # llvm.org/pr14424 - missing FreeBSD Makefiles/testcase support
+ @not_remote_testsuite_ready
@skipIfLinux # llvm.org/pr14424 - missing linux Makefiles/testcase support
def test_load_unload(self):
"""Test breakpoint by name works correctly with dlopen'ing."""
@@ -224,6 +228,7 @@ class LoadUnloadTestCase(TestBase):
substrs = [' resolved, hit count = 2'])
@skipIfFreeBSD # llvm.org/pr14424 - missing FreeBSD Makefiles/testcase support
+ @not_remote_testsuite_ready
@skipIfLinux # llvm.org/pr14424 - missing linux Makefiles/testcase support
def test_step_over_load (self):
"""Test stepping over code that loads a shared library works correctly."""
diff --git a/lldb/test/functionalities/process_launch/TestProcessLaunch.py b/lldb/test/functionalities/process_launch/TestProcessLaunch.py
index 82ab22f452e..e7f83d1818b 100644
--- a/lldb/test/functionalities/process_launch/TestProcessLaunch.py
+++ b/lldb/test/functionalities/process_launch/TestProcessLaunch.py
@@ -31,6 +31,7 @@ class ProcessLaunchTestCase(TestBase):
self.buildDwarf ()
self.process_io_test ()
+ @not_remote_testsuite_ready
def process_io_test (self):
"""Test that process launch I/O redirection flags work properly."""
exe = os.path.join (os.getcwd(), "a.out")
@@ -127,6 +128,7 @@ class ProcessLaunchTestCase(TestBase):
# rdar://problem/9056462
# The process launch flag '-w' for setting the current working directory not working?
+ @not_remote_testsuite_ready
def my_working_dir_test (self):
"""Test that '-w dir' sets the working dir when running the inferior."""
exe = os.path.join (os.getcwd(), "a.out")
diff --git a/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py b/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
index bba5990cc1d..61541dc44e8 100644
--- a/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
+++ b/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
@@ -90,15 +90,13 @@ class HelloWatchLocationTestCase(TestBase):
# only once. The stop reason of the thread should be watchpoint.
self.expect("thread list", STOPPED_DUE_TO_WATCHPOINT,
substrs = ['stopped',
- 'stop reason = watchpoint %d' % expected_wp_id,
- self.violating_func])
+ 'stop reason = watchpoint %d' % expected_wp_id])
# Switch to the thread stopped due to watchpoint and issue some commands.
self.switch_to_thread_with_stop_reason(lldb.eStopReasonWatchpoint)
self.runCmd("thread backtrace")
- self.runCmd("expr unsigned val = *g_char_ptr; val")
- self.expect(self.res.GetOutput().splitlines()[0], exe=False,
- endstr = ' = 1')
+ self.expect("frame info",
+ substrs = [self.violating_func])
# Use the '-v' option to do verbose listing of the watchpoint.
# The hit count should now be 1.
diff --git a/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py b/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
index 4a65baad5e4..4b4bdad2720 100644
--- a/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
+++ b/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
@@ -80,10 +80,11 @@ class HelloWatchpointTestCase(TestBase):
'stop reason = watchpoint'])
self.runCmd("process continue")
+
# Don't expect the read of 'global' to trigger a stop exception.
- # The process status should be 'exited'.
- self.expect("process status",
- substrs = ['exited'])
+ process = self.dbg.GetSelectedTarget().GetProcess()
+ if process.GetState() == lldb.eStateStopped:
+ self.assertFalse(lldbutil.get_stopped_thread(process, lldb.eStopReasonWatchpoint))
# Use the '-v' option to do verbose listing of the watchpoint.
# The hit count should now be 1.
diff --git a/lldb/test/lang/c/blocks/TestBlocks.py b/lldb/test/lang/c/blocks/TestBlocks.py
index 5cd5bd010d6..124f5f2ed5e 100644
--- a/lldb/test/lang/c/blocks/TestBlocks.py
+++ b/lldb/test/lang/c/blocks/TestBlocks.py
@@ -6,7 +6,7 @@ import lldb
from lldbtest import *
import lldbutil
-class AnonymousTestCase(TestBase):
+class BlocksTestCase(TestBase):
mydir = os.path.join("lang", "c", "blocks")
lines = []
diff --git a/lldb/test/lldbtest.py b/lldb/test/lldbtest.py
index c6fb79860a3..a696157427f 100644
--- a/lldb/test/lldbtest.py
+++ b/lldb/test/lldbtest.py
@@ -373,6 +373,23 @@ def dwarf_test(func):
wrapper.__dwarf_test__ = True
return wrapper
+def not_remote_testsuite_ready(func):
+ """Decorate the item as a test which is not ready yet for remote testsuite."""
+ if isinstance(func, type) and issubclass(func, unittest2.TestCase):
+ raise Exception("@not_remote_testsuite_ready can only be used to decorate a test method")
+ @wraps(func)
+ def wrapper(self, *args, **kwargs):
+ try:
+ if lldb.lldbtest_remote_sandbox:
+ self.skipTest("not ready for remote testsuite")
+ except AttributeError:
+ pass
+ return func(self, *args, **kwargs)
+
+ # Mark this function as such to separate them from the regular tests.
+ wrapper.__not_ready_for_remote_testsuite_test__ = True
+ return wrapper
+
def expectedFailureGcc(bugnumber=None, compiler_version=["=", None]):
if callable(bugnumber):
@wraps(bugnumber)
@@ -1556,6 +1573,31 @@ class TestBase(Base):
if not self.dbg:
raise Exception('Invalid debugger instance')
+ #
+ # Warning: MAJOR HACK AHEAD!
+ # If we are running testsuite remotely (by checking lldb.lldbtest_remote_sandbox),
+ # redefine the self.dbg.CreateTarget(filename) method to execute a "file filename"
+ # command, instead. See also runCmd() where it decorates the "file filename" call
+ # with additional functionality when running testsuite remotely.
+ #
+ if lldb.lldbtest_remote_sandbox:
+ def DecoratedCreateTarget(arg):
+ self.runCmd("file %s" % arg)
+ target = self.dbg.GetSelectedTarget()
+ #
+ # SBTarget.LaunchSimple() currently not working for remote platform?
+ # johnny @ 04/23/2012
+ #
+ def DecoratedLaunchSimple(argv, envp, wd):
+ self.runCmd("run")
+ return target.GetProcess()
+ target.LaunchSimple = DecoratedLaunchSimple
+
+ return target
+ self.dbg.CreateTarget = DecoratedCreateTarget
+ if self.TraceOn():
+ print "self.dbg.Create is redefined to:\n%s" % getsource_if_available(DecoratedCreateTarget)
+
# We want our debugger to be synchronous.
self.dbg.SetAsync(False)
@@ -1645,6 +1687,38 @@ class TestBase(Base):
trace = (True if traceAlways else trace)
+ # This is an opportunity to insert the 'platform target-install' command if we are told so
+ # via the settig of lldb.lldbtest_remote_sandbox.
+ if cmd.startswith("target create "):
+ cmd = cmd.replace("target create ", "file ")
+ if cmd.startswith("file ") and lldb.lldbtest_remote_sandbox:
+ with recording(self, trace) as sbuf:
+ the_rest = cmd.split("file ")[1]
+ # Split the rest of the command line.
+ atoms = the_rest.split()
+ #
+ # NOTE: This assumes that the options, if any, follow the file command,
+ # instead of follow the specified target.
+ #
+ target = atoms[-1]
+ # Now let's get the absolute pathname of our target.
+ abs_target = os.path.abspath(target)
+ print >> sbuf, "Found a file command, target (with absolute pathname)=%s" % abs_target
+ fpath, fname = os.path.split(abs_target)
+ parent_dir = os.path.split(fpath)[0]
+ platform_target_install_command = 'platform target-install %s %s' % (fpath, lldb.lldbtest_remote_sandbox)
+ print >> sbuf, "Insert this command to be run first: %s" % platform_target_install_command
+ self.ci.HandleCommand(platform_target_install_command, self.res)
+ # And this is the file command we want to execute, instead.
+ #
+ # Warning: SIDE EFFECT AHEAD!!!
+ # Populate the remote executable pathname into the lldb namespace,
+ # so that test cases can grab this thing out of the namespace.
+ #
+ lldb.lldbtest_remote_sandboxed_executable = abs_target.replace(parent_dir, lldb.lldbtest_remote_sandbox)
+ cmd = "file -P %s %s %s" % (lldb.lldbtest_remote_sandboxed_executable, the_rest.replace(target, ''), abs_target)
+ print >> sbuf, "And this is the replaced file command: %s" % cmd
+
running = (cmd.startswith("run") or cmd.startswith("process launch"))
for i in range(self.maxLaunchCount if running else 1):
diff --git a/lldb/test/macosx/universal/TestUniversal.py b/lldb/test/macosx/universal/TestUniversal.py
index 0a5cf9c1d02..59c21e11e60 100644
--- a/lldb/test/macosx/universal/TestUniversal.py
+++ b/lldb/test/macosx/universal/TestUniversal.py
@@ -35,7 +35,6 @@ class UniversalTestCase(TestBase):
process = target.LaunchSimple(None, None, os.getcwd())
self.assertTrue(process, PROCESS_IS_VALID)
- # rdar://problem/8972204 AddressByteSize of 32-bit process should be 4, got 8 instead.
@unittest2.skipUnless(sys.platform.startswith("darwin") and os.uname()[4] in ['i386', 'x86_64'],
"requires Darwin & i386")
def test_process_launch_for_universal(self):
@@ -74,7 +73,7 @@ class UniversalTestCase(TestBase):
self.runCmd("continue")
# Now specify i386 as the architecture for "testit".
- self.expect("file " + exe + " -a i386", CURRENT_EXECUTABLE_SET,
+ self.expect("file -a i386 " + exe, CURRENT_EXECUTABLE_SET,
startstr = "Current executable set to ",
substrs = ["testit' (i386)."])
diff --git a/lldb/test/python_api/hello_world/TestHelloWorld.py b/lldb/test/python_api/hello_world/TestHelloWorld.py
index d4fabbbb25d..d1e7d89114d 100644
--- a/lldb/test/python_api/hello_world/TestHelloWorld.py
+++ b/lldb/test/python_api/hello_world/TestHelloWorld.py
@@ -33,6 +33,7 @@ class HelloWorldTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.hello_world_python()
+ @not_remote_testsuite_ready
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
@dsym_test
@@ -45,6 +46,7 @@ class HelloWorldTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.hello_world_attach_with_id_api()
+ @not_remote_testsuite_ready
@python_api_test
@dwarf_test
def test_with_dwarf_and_attach_to_process_with_id_api(self):
@@ -56,6 +58,7 @@ class HelloWorldTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.hello_world_attach_with_id_api()
+ @not_remote_testsuite_ready
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@python_api_test
@dsym_test
@@ -69,6 +72,7 @@ class HelloWorldTestCase(TestBase):
self.hello_world_attach_with_name_api()
@expectedFailureFreeBSD('llvm.org/pr16699') # attach by name not on FreeBSD yet
+ @not_remote_testsuite_ready
@python_api_test
@dwarf_test
def test_with_dwarf_and_attach_to_process_with_name_api(self):
diff --git a/lldb/test/python_api/process/TestProcessAPI.py b/lldb/test/python_api/process/TestProcessAPI.py
index 1d8c9e16847..016fc1271cd 100644
--- a/lldb/test/python_api/process/TestProcessAPI.py
+++ b/lldb/test/python_api/process/TestProcessAPI.py
@@ -78,7 +78,6 @@ class ProcessAPITestCase(TestBase):
def read_memory(self):
"""Test Python SBProcess.ReadMemory() API."""
exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
@@ -160,7 +159,6 @@ class ProcessAPITestCase(TestBase):
def write_memory(self):
"""Test Python SBProcess.WriteMemory() API."""
exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
@@ -211,7 +209,6 @@ class ProcessAPITestCase(TestBase):
def access_my_int(self):
"""Test access 'my_int' using Python SBProcess.GetByteOrder() and other APIs."""
exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
@@ -300,7 +297,6 @@ class ProcessAPITestCase(TestBase):
def remote_launch_should_fail(self):
"""Test SBProcess.RemoteLaunch() API with a process not in eStateConnected, and it should fail."""
exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/python_api/target/TestTargetAPI.py b/lldb/test/python_api/target/TestTargetAPI.py
index 27dd3799709..8f2a6dee01b 100644
--- a/lldb/test/python_api/target/TestTargetAPI.py
+++ b/lldb/test/python_api/target/TestTargetAPI.py
@@ -195,7 +195,7 @@ class TargetAPITestCase(TestBase):
self.expect(desc, exe=False,
substrs = ['a.out', 'Target', 'Module', 'Breakpoint'])
-
+ @not_remote_testsuite_ready
def launch_new_process_and_redirect_stdout(self):
"""Exercise SBTaget.Launch() API with redirected stdout."""
exe = os.path.join(os.getcwd(), "a.out")
diff --git a/lldb/test/settings/TestSettings.py b/lldb/test/settings/TestSettings.py
index fe75afc6b3b..b3642c4eb1e 100644
--- a/lldb/test/settings/TestSettings.py
+++ b/lldb/test/settings/TestSettings.py
@@ -205,6 +205,7 @@ class SettingsCommandTestCase(TestBase):
self.buildDwarf()
self.pass_run_args_and_env_vars()
+ @not_remote_testsuite_ready
def pass_run_args_and_env_vars(self):
"""Test that run-args and env-vars are passed to the launched process."""
exe = os.path.join(os.getcwd(), "a.out")
@@ -231,6 +232,7 @@ class SettingsCommandTestCase(TestBase):
"argv[3] matches",
"Environment variable 'MY_ENV_VAR' successfully passed."])
+ @not_remote_testsuite_ready
def test_pass_host_env_vars(self):
"""Test that the host env vars are passed to the launched process."""
self.buildDefault()
@@ -262,6 +264,7 @@ class SettingsCommandTestCase(TestBase):
substrs = ["The host environment variable 'MY_HOST_ENV_VAR1' successfully passed.",
"The host environment variable 'MY_HOST_ENV_VAR2' successfully passed."])
+ @not_remote_testsuite_ready
def test_set_error_output_path(self):
"""Test that setting target.error/output-path for the launched process works."""
self.buildDefault()
OpenPOWER on IntegriCloud