blob: 3fb7d00c93d29df9a80d7ca07d4d9cfe398baef3 [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(),
)