blob: 3312cb04832ab742228fcf64c001f86ffc0fe8c5 [file] [log] [blame]
"""
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 {} -s".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())