summaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py')
-rw-r--r--packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py107
1 files changed, 45 insertions, 62 deletions
diff --git a/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py b/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py
index 5929a352b615..9d1cac90d856 100644
--- a/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py
+++ b/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py
@@ -19,6 +19,7 @@ import six
class ProcessLaunchTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
+ NO_DEBUG_INFO_TESTCASE = True
def setUp(self):
# Call super's setUp().
@@ -33,13 +34,13 @@ class ProcessLaunchTestCase(TestBase):
def test_io(self):
"""Test that process launch I/O redirection flags work properly."""
self.build()
- exe = os.path.join(os.getcwd(), "a.out")
+ exe = self.getBuildArtifact("a.out")
self.expect("file " + exe,
patterns=["Current executable set to .*a.out"])
- in_file = "input-file.txt"
- out_file = "output-test.out"
- err_file = "output-test.err"
+ in_file = os.path.join(self.getSourceDir(), "input-file.txt")
+ out_file = lldbutil.append_to_process_working_directory(self, "output-test.out")
+ err_file = lldbutil.append_to_process_working_directory(self, "output-test.err")
# Make sure the output files do not exist before launching the process
try:
@@ -52,8 +53,8 @@ class ProcessLaunchTestCase(TestBase):
except OSError:
pass
- launch_command = "process launch -i " + \
- in_file + " -o " + out_file + " -e " + err_file
+ launch_command = "process launch -i '{0}' -o '{1}' -e '{2}' -w '{3}'".format(
+ in_file, out_file, err_file, self.get_process_working_directory())
if lldb.remote_platform:
self.runCmd('platform put-file "{local}" "{remote}"'.format(
@@ -62,55 +63,19 @@ class ProcessLaunchTestCase(TestBase):
self.expect(launch_command,
patterns=["Process .* launched: .*a.out"])
- if lldb.remote_platform:
- self.runCmd('platform get-file "{remote}" "{local}"'.format(
- remote=out_file, local=out_file))
- self.runCmd('platform get-file "{remote}" "{local}"'.format(
- remote=err_file, local=err_file))
-
success = True
err_msg = ""
- # Check to see if the 'stdout' file was created
- try:
- out_f = open(out_file)
- except IOError:
+ out = lldbutil.read_file_on_target(self, out_file)
+ if out != "This should go to stdout.\n":
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()
- 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()
+ err_msg = err_msg + " ERROR: stdout file does not contain correct output.\n"
- # Try to delete the 'stdout' file
- try:
- os.remove(out_file)
- except OSError:
- pass
- # Check to see if the 'stderr' file was created
- try:
- err_f = open(err_file)
- except IOError:
+ err = lldbutil.read_file_on_target(self, err_file)
+ if err != "This should go to stderr.\n":
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()
- if line != "This should go to stderr.\n":
- success = False
- err_msg = err_msg + " ERROR: stderr file does not contain correct output.\n\
-"
- err_f.close()
-
- # Try to delete the 'stderr' file
- try:
- os.remove(err_file)
- except OSError:
- pass
+ err_msg = err_msg + " ERROR: stderr file does not contain correct output.\n"
if not success:
self.fail(err_msg)
@@ -120,19 +85,47 @@ class ProcessLaunchTestCase(TestBase):
# not working?
@not_remote_testsuite_ready
@expectedFailureAll(oslist=["linux"], bugnumber="llvm.org/pr20265")
- def test_set_working_dir(self):
+ def test_set_working_dir_nonexisting(self):
+ """Test that '-w dir' fails to set the working dir when running the inferior with a dir which doesn't exist."""
+ d = {'CXX_SOURCES': 'print_cwd.cpp'}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(d)
+ exe = self.getBuildArtifact("a.out")
+ self.runCmd("file " + exe)
+
+ mywd = 'my_working_dir'
+ out_file_name = "my_working_dir_test.out"
+ err_file_name = "my_working_dir_test.err"
+
+ my_working_dir_path = self.getBuildArtifact(mywd)
+ out_file_path = os.path.join(my_working_dir_path, out_file_name)
+ err_file_path = os.path.join(my_working_dir_path, err_file_name)
+
+ # Check that we get an error when we have a nonexisting path
+ invalid_dir_path = mywd + 'z'
+ launch_command = "process launch -w %s -o %s -e %s" % (
+ invalid_dir_path, out_file_path, err_file_path)
+
+ self.expect(
+ launch_command, error=True, patterns=[
+ "error:.* No such file or directory: %s" %
+ invalid_dir_path])
+
+ @not_remote_testsuite_ready
+ def test_set_working_dir_existing(self):
"""Test that '-w dir' sets the working dir when running the inferior."""
d = {'CXX_SOURCES': 'print_cwd.cpp'}
self.build(dictionary=d)
self.setTearDownCleanup(d)
- exe = os.path.join(os.getcwd(), "a.out")
+ exe = self.getBuildArtifact("a.out")
self.runCmd("file " + exe)
mywd = 'my_working_dir'
out_file_name = "my_working_dir_test.out"
err_file_name = "my_working_dir_test.err"
- my_working_dir_path = os.path.join(os.getcwd(), mywd)
+ my_working_dir_path = self.getBuildArtifact(mywd)
+ lldbutil.mkdir_p(my_working_dir_path)
out_file_path = os.path.join(my_working_dir_path, out_file_name)
err_file_path = os.path.join(my_working_dir_path, err_file_name)
@@ -143,16 +136,6 @@ class ProcessLaunchTestCase(TestBase):
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)
-
- 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)
@@ -195,7 +178,7 @@ class ProcessLaunchTestCase(TestBase):
d = {'CXX_SOURCES': source}
self.build(dictionary=d)
self.setTearDownCleanup(d)
- exe = os.path.join(os.getcwd(), "a.out")
+ exe = self.getBuildArtifact("a.out")
evil_var = 'INIT*MIDDLE}TAIL'