forked from OSchip/llvm-project
Next batch of test-tree-cleaning changes
Summary: The changes here fall into several categories. - some tests were redirecting inferior stdout/err to a file. For these I make sure we use an absolute path for the file. I also create a lldbutil.read_file_on_target helper function to encapsulate the differences between reading a file locally and remotely. - some tests were redirecting the pexpect I/O into a file. For these I use a python StringIO object to avoid creating a file altogether. - the TestSettings inferior was creating a file. Here, I make sure the inferior is launched with pwd=build-dir so that the files end up created there. - lldb-mi --log (used by some tests) creates a log file in PWD without the ability say differently. To make this work I make sure to run lldb-mi with PWD=build_dir. This in turn necessitated a couple of changes in other lldb-mi tests, which were using relative paths to access the source tree. Reviewers: aprantl Subscribers: ki.stfu, mehdi_amini, lldb-commits Differential Revision: https://reviews.llvm.org/D44159 llvm-svn: 327625
This commit is contained in:
parent
dfc7eb490a
commit
107052ff9d
|
@ -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().
|
||||
|
@ -38,8 +39,8 @@ class ProcessLaunchTestCase(TestBase):
|
|||
patterns=["Current executable set to .*a.out"])
|
||||
|
||||
in_file = "input-file.txt"
|
||||
out_file = "output-test.out"
|
||||
err_file = "output-test.err"
|
||||
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)
|
||||
|
|
|
@ -10,7 +10,7 @@ import lldb
|
|||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.lldbtest import *
|
||||
from lldbsuite.test import lldbutil
|
||||
|
||||
import six
|
||||
|
||||
class SingleQuoteInCommandLineTestCase(TestBase):
|
||||
|
||||
|
@ -50,32 +50,24 @@ class SingleQuoteInCommandLineTestCase(TestBase):
|
|||
self.getBuildArtifact(self.myexe)))
|
||||
child = self.child
|
||||
child.setecho(True)
|
||||
# Turn on logging for input/output to/from the child.
|
||||
with open('child_send.txt', 'w') as f_send:
|
||||
with open('child_read.txt', 'w') as f_read:
|
||||
child.logfile_send = f_send
|
||||
child.logfile_read = f_read
|
||||
child.logfile_send = send = six.StringIO()
|
||||
child.logfile_read = read = six.StringIO()
|
||||
child.expect_exact(prompt)
|
||||
|
||||
child.expect_exact(prompt)
|
||||
|
||||
child.send("help watchpoint")
|
||||
child.sendline('')
|
||||
child.expect_exact(prompt)
|
||||
child.send("help watchpoint")
|
||||
child.sendline('')
|
||||
child.expect_exact(prompt)
|
||||
|
||||
# Now that the necessary logging is done, restore logfile to None to
|
||||
# stop further logging.
|
||||
child.logfile_send = None
|
||||
child.logfile_read = None
|
||||
|
||||
with open('child_send.txt', 'r') as fs:
|
||||
if self.TraceOn():
|
||||
print("\n\nContents of child_send.txt:")
|
||||
print(fs.read())
|
||||
with open('child_read.txt', 'r') as fr:
|
||||
from_child = fr.read()
|
||||
if self.TraceOn():
|
||||
print("\n\nContents of child_read.txt:")
|
||||
print(from_child)
|
||||
if self.TraceOn():
|
||||
print("\n\nContents of send")
|
||||
print(send.getvalue())
|
||||
print("\n\nContents of read")
|
||||
print(read.getvalue())
|
||||
|
||||
self.expect(from_child, exe=False,
|
||||
substrs=["Current executable set to"])
|
||||
self.expect(read.getvalue(), exe=False,
|
||||
substrs=["Current executable set to"])
|
||||
|
|
|
@ -1321,6 +1321,21 @@ def skip_if_library_missing(test, target, library):
|
|||
target))
|
||||
|
||||
|
||||
def read_file_on_target(test, remote):
|
||||
if lldb.remote_platform:
|
||||
local = test.getBuildArtifact("file_from_target")
|
||||
error = lldb.remote_platform.Get(lldb.SBFileSpec(remote, False),
|
||||
lldb.SBFileSpec(local, True))
|
||||
test.assertTrue(error.Success(), "Reading file {0} failed: {1}".format(remote, error))
|
||||
else:
|
||||
local = remote
|
||||
with open(local, 'r') as f:
|
||||
return f.read()
|
||||
|
||||
def read_file_from_process_wd(test, name):
|
||||
path = append_to_process_working_directory(test, name)
|
||||
return read_file_on_target(test, path)
|
||||
|
||||
def wait_for_file_on_target(testcase, file_path, max_attempts=6):
|
||||
for i in range(max_attempts):
|
||||
err, retcode, msg = testcase.run_platform_command("ls %s" % file_path)
|
||||
|
@ -1335,9 +1350,4 @@ def wait_for_file_on_target(testcase, file_path, max_attempts=6):
|
|||
"File %s not found even after %d attempts." %
|
||||
(file_path, max_attempts))
|
||||
|
||||
err, retcode, data = testcase.run_platform_command("cat %s" % (file_path))
|
||||
|
||||
testcase.assertTrue(
|
||||
err.Success() and retcode == 0, "Failed to read file %s: %s, retcode: %d" %
|
||||
(file_path, err.GetCString(), retcode))
|
||||
return data
|
||||
return read_file_on_target(testcase, file_path)
|
||||
|
|
|
@ -17,16 +17,8 @@ from lldbsuite.test import lldbutil
|
|||
class SettingsCommandTestCase(TestBase):
|
||||
|
||||
mydir = TestBase.compute_mydir(__file__)
|
||||
NO_DEBUG_INFO_TESTCASE = True
|
||||
|
||||
@classmethod
|
||||
def classCleanup(cls):
|
||||
"""Cleanup the test byproducts."""
|
||||
cls.RemoveTempFile("output1.txt")
|
||||
cls.RemoveTempFile("output2.txt")
|
||||
cls.RemoveTempFile("stderr.txt")
|
||||
cls.RemoveTempFile("stdout.txt")
|
||||
|
||||
@no_debug_info_test
|
||||
def test_apropos_should_also_search_settings_description(self):
|
||||
"""Test that 'apropos' command should also search descriptions for the settings variables."""
|
||||
|
||||
|
@ -35,7 +27,6 @@ class SettingsCommandTestCase(TestBase):
|
|||
"environment variables",
|
||||
"executable's environment"])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_append_target_env_vars(self):
|
||||
"""Test that 'append target.run-args' works."""
|
||||
# Append the env-vars.
|
||||
|
@ -48,7 +39,6 @@ class SettingsCommandTestCase(TestBase):
|
|||
self.expect('settings show target.env-vars',
|
||||
substrs=['MY_ENV_VAR=YES'])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_insert_before_and_after_target_run_args(self):
|
||||
"""Test that 'insert-before/after target.run-args' works."""
|
||||
# Set the run-args first.
|
||||
|
@ -70,7 +60,6 @@ class SettingsCommandTestCase(TestBase):
|
|||
'[3]: "b"',
|
||||
'[4]: "c"'])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_replace_target_run_args(self):
|
||||
"""Test that 'replace target.run-args' works."""
|
||||
# Set the run-args and then replace the index-0 element.
|
||||
|
@ -88,7 +77,6 @@ class SettingsCommandTestCase(TestBase):
|
|||
'[1]: "b"',
|
||||
'[2]: "c"'])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_set_prompt(self):
|
||||
"""Test that 'set prompt' actually changes the prompt."""
|
||||
|
||||
|
@ -106,7 +94,6 @@ class SettingsCommandTestCase(TestBase):
|
|||
# Use '-r' option to reset to the original default prompt.
|
||||
self.runCmd("settings clear prompt")
|
||||
|
||||
@no_debug_info_test
|
||||
def test_set_term_width(self):
|
||||
"""Test that 'set term-width' actually changes the term-width."""
|
||||
|
||||
|
@ -153,7 +140,8 @@ class SettingsCommandTestCase(TestBase):
|
|||
substrs=[format_string])
|
||||
|
||||
self.runCmd("breakpoint set -n main")
|
||||
self.runCmd("run")
|
||||
self.runCmd("process launch --working-dir '{0}'".format(self.get_process_working_directory()),
|
||||
RUN_SUCCEEDED)
|
||||
self.expect("thread backtrace",
|
||||
substrs=["`main", self.getSourceDir()])
|
||||
|
||||
|
@ -231,13 +219,11 @@ class SettingsCommandTestCase(TestBase):
|
|||
self.addTearDownHook(
|
||||
lambda: self.runCmd("settings clear target.env-vars"))
|
||||
|
||||
self.runCmd("run", RUN_SUCCEEDED)
|
||||
self.runCmd("process launch --working-dir '{0}'".format(self.get_process_working_directory()),
|
||||
RUN_SUCCEEDED)
|
||||
|
||||
# Read the output file produced by running the program.
|
||||
if lldb.remote_platform:
|
||||
self.runCmd('platform get-file "output2.txt" "output2.txt"')
|
||||
with open('output2.txt', 'r') as f:
|
||||
output = f.read()
|
||||
output = lldbutil.read_file_from_process_wd(self, "output2.txt")
|
||||
|
||||
self.expect(
|
||||
output,
|
||||
|
@ -272,13 +258,11 @@ class SettingsCommandTestCase(TestBase):
|
|||
os.environ.pop("MY_HOST_ENV_VAR2")
|
||||
|
||||
self.addTearDownHook(unset_env_variables)
|
||||
self.runCmd("run", RUN_SUCCEEDED)
|
||||
self.runCmd("process launch --working-dir '{0}'".format(self.get_process_working_directory()),
|
||||
RUN_SUCCEEDED)
|
||||
|
||||
# Read the output file produced by running the program.
|
||||
if lldb.remote_platform:
|
||||
self.runCmd('platform get-file "output1.txt" "output1.txt"')
|
||||
with open('output1.txt', 'r') as f:
|
||||
output = f.read()
|
||||
output = lldbutil.read_file_from_process_wd(self, "output1.txt")
|
||||
|
||||
self.expect(
|
||||
output,
|
||||
|
@ -296,8 +280,10 @@ class SettingsCommandTestCase(TestBase):
|
|||
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
|
||||
|
||||
# Set the error-path and output-path and verify both are set.
|
||||
self.runCmd("settings set target.error-path stderr.txt")
|
||||
self.runCmd("settings set target.output-path stdout.txt")
|
||||
self.runCmd("settings set target.error-path '{0}'".format(
|
||||
lldbutil.append_to_process_working_directory(self, "stderr.txt")))
|
||||
self.runCmd("settings set target.output-path '{0}".format(
|
||||
lldbutil.append_to_process_working_directory(self, "stdout.txt")))
|
||||
# And add hooks to restore the original settings during tearDown().
|
||||
self.addTearDownHook(
|
||||
lambda: self.runCmd("settings clear target.output-path"))
|
||||
|
@ -306,44 +292,26 @@ class SettingsCommandTestCase(TestBase):
|
|||
|
||||
self.expect("settings show target.error-path",
|
||||
SETTING_MSG("target.error-path"),
|
||||
substrs=['target.error-path (file) = "stderr.txt"'])
|
||||
substrs=['target.error-path (file)', 'stderr.txt"'])
|
||||
|
||||
self.expect("settings show target.output-path",
|
||||
SETTING_MSG("target.output-path"),
|
||||
substrs=['target.output-path (file) = "stdout.txt"'])
|
||||
substrs=['target.output-path (file)', 'stdout.txt"'])
|
||||
|
||||
self.runCmd("run", RUN_SUCCEEDED)
|
||||
|
||||
if lldb.remote_platform:
|
||||
self.runCmd('platform get-file "stderr.txt" "stderr.txt"')
|
||||
self.runCmd('platform get-file "stdout.txt" "stdout.txt"')
|
||||
|
||||
# The 'stderr.txt' file should now exist.
|
||||
self.assertTrue(os.path.isfile("stderr.txt"),
|
||||
"'stderr.txt' exists due to target.error-path.")
|
||||
|
||||
# Read the output file produced by running the program.
|
||||
with open('stderr.txt', 'r') as f:
|
||||
output = f.read()
|
||||
self.runCmd("process launch --working-dir '{0}'".format(self.get_process_working_directory()),
|
||||
RUN_SUCCEEDED)
|
||||
|
||||
output = lldbutil.read_file_from_process_wd(self, "stderr.txt")
|
||||
message = "This message should go to standard error."
|
||||
if lldbplatformutil.hasChattyStderr(self):
|
||||
self.expect(output, exe=False, substrs=[message])
|
||||
else:
|
||||
self.expect(output, exe=False, startstr=message)
|
||||
|
||||
# The 'stdout.txt' file should now exist.
|
||||
self.assertTrue(os.path.isfile("stdout.txt"),
|
||||
"'stdout.txt' exists due to target.output-path.")
|
||||
|
||||
# Read the output file produced by running the program.
|
||||
with open('stdout.txt', 'r') as f:
|
||||
output = f.read()
|
||||
|
||||
output = lldbutil.read_file_from_process_wd(self, "stdout.txt")
|
||||
self.expect(output, exe=False,
|
||||
startstr="This message should go to standard out.")
|
||||
|
||||
@no_debug_info_test
|
||||
def test_print_dictionary_setting(self):
|
||||
self.runCmd("settings clear target.env-vars")
|
||||
self.runCmd("settings set target.env-vars [\"MY_VAR\"]=some-value")
|
||||
|
@ -351,7 +319,6 @@ class SettingsCommandTestCase(TestBase):
|
|||
substrs=["MY_VAR=some-value"])
|
||||
self.runCmd("settings clear target.env-vars")
|
||||
|
||||
@no_debug_info_test
|
||||
def test_print_array_setting(self):
|
||||
self.runCmd("settings clear target.run-args")
|
||||
self.runCmd("settings set target.run-args gobbledy-gook")
|
||||
|
@ -359,7 +326,6 @@ class SettingsCommandTestCase(TestBase):
|
|||
substrs=['[0]: "gobbledy-gook"'])
|
||||
self.runCmd("settings clear target.run-args")
|
||||
|
||||
@no_debug_info_test
|
||||
def test_settings_with_quotes(self):
|
||||
self.runCmd("settings clear target.run-args")
|
||||
self.runCmd("settings set target.run-args a b c")
|
||||
|
@ -392,7 +358,6 @@ class SettingsCommandTestCase(TestBase):
|
|||
'thread-format (format-string) = "abc def "')
|
||||
self.runCmd('settings clear thread-format')
|
||||
|
||||
@no_debug_info_test
|
||||
def test_settings_with_trailing_whitespace(self):
|
||||
|
||||
# boolean
|
||||
|
@ -517,7 +482,6 @@ class SettingsCommandTestCase(TestBase):
|
|||
substrs=['disassembly-format (format-string) = "foo "'])
|
||||
self.runCmd("settings clear disassembly-format", check=False)
|
||||
|
||||
@no_debug_info_test
|
||||
def test_all_settings_exist(self):
|
||||
self.expect("settings show",
|
||||
substrs=["auto-confirm",
|
||||
|
|
|
@ -7,6 +7,7 @@ from __future__ import print_function
|
|||
|
||||
import os
|
||||
import lldb
|
||||
import six
|
||||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.lldbtest import *
|
||||
from lldbsuite.test import lldbutil
|
||||
|
@ -58,13 +59,10 @@ class TestSTTYBeforeAndAfter(TestBase):
|
|||
child.expect(expect_prompt)
|
||||
|
||||
# Turn on loggings for input/output to/from the child.
|
||||
with open('child_send1.txt', 'w') as f_send1:
|
||||
with open('child_read1.txt', 'w') as f_read1:
|
||||
child.logfile_send = f_send1
|
||||
child.logfile_read = f_read1
|
||||
|
||||
child.sendline('stty -a')
|
||||
child.expect(expect_prompt)
|
||||
child.logfile_send = child_send1 = six.StringIO()
|
||||
child.logfile_read = child_read1 = six.StringIO()
|
||||
child.sendline('stty -a')
|
||||
child.expect(expect_prompt)
|
||||
|
||||
# Now that the stage1 logging is done, restore logfile to None to
|
||||
# stop further logging.
|
||||
|
@ -79,43 +77,30 @@ class TestSTTYBeforeAndAfter(TestBase):
|
|||
child.sendline('quit')
|
||||
child.expect(expect_prompt)
|
||||
|
||||
with open('child_send2.txt', 'w') as f_send2:
|
||||
with open('child_read2.txt', 'w') as f_read2:
|
||||
child.logfile_send = f_send2
|
||||
child.logfile_read = f_read2
|
||||
child.logfile_send = child_send2 = six.StringIO()
|
||||
child.logfile_read = child_read2 = six.StringIO()
|
||||
child.sendline('stty -a')
|
||||
child.expect(expect_prompt)
|
||||
|
||||
child.sendline('stty -a')
|
||||
child.expect(expect_prompt)
|
||||
|
||||
child.sendline('exit')
|
||||
child.sendline('exit')
|
||||
|
||||
# Now that the stage2 logging is done, restore logfile to None to
|
||||
# stop further logging.
|
||||
child.logfile_send = None
|
||||
child.logfile_read = None
|
||||
|
||||
with open('child_send1.txt', 'r') as fs:
|
||||
if self.TraceOn():
|
||||
print("\n\nContents of child_send1.txt:")
|
||||
print(fs.read())
|
||||
with open('child_read1.txt', 'r') as fr:
|
||||
from_child1 = fr.read()
|
||||
if self.TraceOn():
|
||||
print("\n\nContents of child_read1.txt:")
|
||||
print(from_child1)
|
||||
if self.TraceOn():
|
||||
print("\n\nContents of child_send1:")
|
||||
print(child_send1.getvalue())
|
||||
print("\n\nContents of child_read1:")
|
||||
print(child_read1.getvalue())
|
||||
print("\n\nContents of child_send2:")
|
||||
print(child_send2.getvalue())
|
||||
print("\n\nContents of child_read2:")
|
||||
print(child_read2.getvalue())
|
||||
|
||||
with open('child_send2.txt', 'r') as fs:
|
||||
if self.TraceOn():
|
||||
print("\n\nContents of child_send2.txt:")
|
||||
print(fs.read())
|
||||
with open('child_read2.txt', 'r') as fr:
|
||||
from_child2 = fr.read()
|
||||
if self.TraceOn():
|
||||
print("\n\nContents of child_read2.txt:")
|
||||
print(from_child2)
|
||||
|
||||
stty_output1_lines = from_child1.splitlines()
|
||||
stty_output2_lines = from_child2.splitlines()
|
||||
stty_output1_lines = child_read1.getvalue().splitlines()
|
||||
stty_output2_lines = child_read2.getvalue().splitlines()
|
||||
zipped = list(zip(stty_output1_lines, stty_output2_lines))
|
||||
for tuple in zipped:
|
||||
if self.TraceOn():
|
||||
|
|
|
@ -59,7 +59,7 @@ class MiFileTestCase(lldbmi_testcase.MiTestCaseBase):
|
|||
|
||||
# Test that -file-exec-and-symbols works for relative path
|
||||
import os
|
||||
path = os.path.relpath(self.myexe)
|
||||
path = os.path.relpath(self.myexe, self.getBuildDir())
|
||||
self.runCmd("-file-exec-and-symbols %s" % path)
|
||||
self.expect("\^done")
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ class MiTestCaseBase(Base):
|
|||
def spawnLldbMi(self, args=None):
|
||||
import pexpect
|
||||
self.child = pexpect.spawn("%s --interpreter %s" % (
|
||||
self.lldbMiExec, args if args else ""))
|
||||
self.lldbMiExec, args if args else ""), cwd=self.getBuildDir())
|
||||
self.child.setecho(True)
|
||||
self.mylog = self.getBuildArtifact("child.log")
|
||||
self.child.logfile_read = open(self.mylog, "w")
|
||||
|
|
|
@ -94,7 +94,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
|
|||
"""Test that 'lldb-mi --interpreter %s' loads executable which is specified via relative path."""
|
||||
|
||||
# Prepare path to executable
|
||||
path = os.path.relpath(self.myexe)
|
||||
path = os.path.relpath(self.myexe, self.getBuildDir())
|
||||
self.spawnLldbMi(args="%s" % path)
|
||||
|
||||
# Test that the executable is loaded when file was specified using
|
||||
|
@ -258,7 +258,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
|
|||
def test_lldbmi_log_option(self):
|
||||
"""Test that 'lldb-mi --log' creates a log file in the current directory."""
|
||||
|
||||
logDirectory = "."
|
||||
logDirectory = self.getBuildDir()
|
||||
self.spawnLldbMi(args="%s --log" % self.myexe)
|
||||
|
||||
# Test that the executable is loaded when file was specified
|
||||
|
|
|
@ -47,7 +47,7 @@ class MiSyntaxTestCase(lldbmi_testcase.MiTestCaseBase):
|
|||
"""Test that 'lldb-mi --interpreter' handles complicated strings."""
|
||||
|
||||
# Create an alias for myexe
|
||||
complicated_myexe = "C--mpl-x file's`s @#$%^&*()_+-={}[]| name"
|
||||
complicated_myexe = self.getBuildArtifact("C--mpl-x file's`s @#$%^&*()_+-={}[]| name")
|
||||
os.symlink(self.myexe, complicated_myexe)
|
||||
self.addTearDownHook(lambda: os.unlink(complicated_myexe))
|
||||
|
||||
|
|
Loading…
Reference in New Issue