diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py')
-rw-r--r-- | packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py | 107 |
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' |