summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py')
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py96
1 files changed, 53 insertions, 43 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py b/lldb/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py
index 5998edb3c7e..5929a352b61 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py
@@ -15,6 +15,7 @@ from lldbsuite.test import lldbutil
import six
+
class ProcessLaunchTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -29,12 +30,12 @@ class ProcessLaunchTestCase(TestBase):
TestBase.tearDown(self)
@not_remote_testsuite_ready
- def test_io (self):
+ def test_io(self):
"""Test that process launch I/O redirection flags work properly."""
- self.build ()
- exe = os.path.join (os.getcwd(), "a.out")
+ self.build()
+ exe = os.path.join(os.getcwd(), "a.out")
self.expect("file " + exe,
- patterns = [ "Current executable set to .*a.out" ])
+ patterns=["Current executable set to .*a.out"])
in_file = "input-file.txt"
out_file = "output-test.out"
@@ -42,23 +43,24 @@ class ProcessLaunchTestCase(TestBase):
# Make sure the output files do not exist before launching the process
try:
- os.remove (out_file)
+ os.remove(out_file)
except OSError:
pass
try:
- os.remove (err_file)
+ os.remove(err_file)
except OSError:
pass
- launch_command = "process launch -i " + in_file + " -o " + out_file + " -e " + err_file
+ launch_command = "process launch -i " + \
+ in_file + " -o " + out_file + " -e " + err_file
if lldb.remote_platform:
self.runCmd('platform put-file "{local}" "{remote}"'.format(
local=in_file, remote=in_file))
- self.expect (launch_command,
- patterns = [ "Process .* launched: .*a.out" ])
+ self.expect(launch_command,
+ patterns=["Process .* launched: .*a.out"])
if lldb.remote_platform:
self.runCmd('platform get-file "{remote}" "{local}"'.format(
@@ -71,33 +73,33 @@ class ProcessLaunchTestCase(TestBase):
# Check to see if the 'stdout' file was created
try:
- out_f = open (out_file)
+ out_f = open(out_file)
except IOError:
success = False
err_msg = err_msg + " ERROR: stdout file was not created.\n"
else:
# Check to see if the 'stdout' file contains the right output
- line = out_f.readline ();
+ line = out_f.readline()
if line != "This should go to stdout.\n":
success = False
err_msg = err_msg + " ERROR: stdout file does not contain correct output.\n"
- out_f.close();
+ out_f.close()
# Try to delete the 'stdout' file
try:
- os.remove (out_file)
+ os.remove(out_file)
except OSError:
pass
# Check to see if the 'stderr' file was created
try:
- err_f = open (err_file)
+ err_f = open(err_file)
except IOError:
success = False
err_msg = err_msg + " ERROR: stderr file was not created.\n"
else:
# Check to see if the 'stderr' file contains the right output
- line = err_f.readline ()
+ line = err_f.readline()
if line != "This should go to stderr.\n":
success = False
err_msg = err_msg + " ERROR: stderr file does not contain correct output.\n\
@@ -106,23 +108,24 @@ class ProcessLaunchTestCase(TestBase):
# Try to delete the 'stderr' file
try:
- os.remove (err_file)
+ os.remove(err_file)
except OSError:
pass
if not success:
- self.fail (err_msg)
+ self.fail(err_msg)
# rdar://problem/9056462
- # The process launch flag '-w' for setting the current working directory not working?
+ # The process launch flag '-w' for setting the current working directory
+ # not working?
@not_remote_testsuite_ready
@expectedFailureAll(oslist=["linux"], bugnumber="llvm.org/pr20265")
- def test_set_working_dir (self):
+ def test_set_working_dir(self):
"""Test that '-w dir' sets the working dir when running the inferior."""
- d = {'CXX_SOURCES' : 'print_cwd.cpp'}
+ d = {'CXX_SOURCES': 'print_cwd.cpp'}
self.build(dictionary=d)
self.setTearDownCleanup(d)
- exe = os.path.join (os.getcwd(), "a.out")
+ exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe)
mywd = 'my_working_dir'
@@ -135,26 +138,26 @@ class ProcessLaunchTestCase(TestBase):
# Make sure the output files do not exist before launching the process
try:
- os.remove (out_file_path)
- os.remove (err_file_path)
+ os.remove(out_file_path)
+ os.remove(err_file_path)
except OSError:
pass
# Check that we get an error when we have a nonexisting path
- launch_command = "process launch -w %s -o %s -e %s" % (my_working_dir_path + 'z',
- out_file_path,
- err_file_path)
+ launch_command = "process launch -w %s -o %s -e %s" % (
+ my_working_dir_path + 'z', out_file_path, err_file_path)
- self.expect(launch_command, error=True,
- patterns = ["error:.* No such file or directory: %sz" % my_working_dir_path])
+ self.expect(
+ launch_command, error=True, patterns=[
+ "error:.* No such file or directory: %sz" %
+ my_working_dir_path])
# Really launch the process
- launch_command = "process launch -w %s -o %s -e %s" % (my_working_dir_path,
- out_file_path,
- err_file_path)
+ launch_command = "process launch -w %s -o %s -e %s" % (
+ my_working_dir_path, out_file_path, err_file_path)
self.expect(launch_command,
- patterns = [ "Process .* launched: .*a.out" ])
+ patterns=["Process .* launched: .*a.out"])
success = True
err_msg = ""
@@ -167,13 +170,13 @@ class ProcessLaunchTestCase(TestBase):
err_msg = err_msg + "ERROR: stdout file was not created.\n"
else:
# Check to see if the 'stdout' file contains the right output
- line = out_f.readline();
+ line = out_f.readline()
if self.TraceOn():
print("line:", line)
if not re.search(mywd, line):
success = False
err_msg = err_msg + "The current working directory was not set correctly.\n"
- out_f.close();
+ out_f.close()
# Try to delete the 'stdout' and 'stderr' files
try:
@@ -186,24 +189,31 @@ class ProcessLaunchTestCase(TestBase):
if not success:
self.fail(err_msg)
- def test_environment_with_special_char (self):
+ def test_environment_with_special_char(self):
"""Test that environment variables containing '*' and '}' are handled correctly by the inferior."""
source = 'print_env.cpp'
- d = {'CXX_SOURCES' : source}
+ d = {'CXX_SOURCES': source}
self.build(dictionary=d)
self.setTearDownCleanup(d)
- exe = os.path.join (os.getcwd(), "a.out")
+ exe = os.path.join(os.getcwd(), "a.out")
evil_var = 'INIT*MIDDLE}TAIL'
target = self.dbg.CreateTarget(exe)
main_source_spec = lldb.SBFileSpec(source)
- breakpoint = target.BreakpointCreateBySourceRegex('// Set breakpoint here.', main_source_spec)
-
- process = target.LaunchSimple(None, ['EVIL=' + evil_var], self.get_process_working_directory())
- self.assertEqual(process.GetState(), lldb.eStateStopped, PROCESS_STOPPED)
-
- threads = lldbutil.get_threads_stopped_at_breakpoint(process, breakpoint)
+ breakpoint = target.BreakpointCreateBySourceRegex(
+ '// Set breakpoint here.', main_source_spec)
+
+ process = target.LaunchSimple(None,
+ ['EVIL=' + evil_var],
+ self.get_process_working_directory())
+ self.assertEqual(
+ process.GetState(),
+ lldb.eStateStopped,
+ PROCESS_STOPPED)
+
+ threads = lldbutil.get_threads_stopped_at_breakpoint(
+ process, breakpoint)
self.assertEqual(len(threads), 1)
frame = threads[0].GetFrameAtIndex(0)
sbvalue = frame.EvaluateExpression("evil")
OpenPOWER on IntegriCloud