""" Test platform process launch. """ from textwrap import dedent from lldbsuite.test.lldbtest import TestBase class ProcessLaunchTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True def setup(self): self.build() exe = self.getBuildArtifact("a.out") self.runCmd("file " + exe) return (exe, self.getBuildArtifact("stdio.log")) def test_process_launch_no_args(self): # When there are no extra arguments we just have 0, the program name. exe, outfile = self.setup() self.runCmd("platform process launch --stdout {} -s".format(outfile)) self.runCmd("continue") with open(outfile) as f: self.assertEqual(dedent("""\ Got 1 argument(s). [0]: {} """.format(exe)), f.read()) def test_process_launch_command_args(self): exe, outfile = self.setup() # Arguments given via the command override those in the settings. self.runCmd("settings set target.run-args D E") self.runCmd("platform process launch --stdout {} -s -- A B C".format(outfile)) self.runCmd("continue") with open(outfile) as f: self.assertEqual(dedent("""\ Got 4 argument(s). [0]: {} [1]: A [2]: B [3]: C """.format(exe)), f.read()) def test_process_launch_target_args(self): exe, outfile = self.setup() # When no arguments are passed via the command, use the setting. self.runCmd("settings set target.run-args D E") self.runCmd("platform process launch --stdout {}".format(outfile)) self.runCmd("continue") with open(outfile) as f: self.assertEqual(dedent("""\ Got 3 argument(s). [0]: {} [1]: D [2]: E """.format(exe)), f.read())