mirror of
https://github.com/intel/llvm.git
synced 2026-01-25 01:07:04 +08:00
refactor testsuite spawnLldbMi args->exe+args
Currently spawnLldbMi accepts both lldb-mi options and executable to debug as a single parameter. Split them. As in D55859 we will need to execute one lldb-mi command before loading the exe. Therefore we can no longer use the exe as lldb-mi command-line parameter as then there is no way to execute a command before loading exe specified as lldb-mi command-line parameter. LocateExecutableSymbolFileDsym should be static, that is also a little refactorization. Differential Revision: https://reviews.llvm.org/D55858 llvm-svn: 349607
This commit is contained in:
@@ -40,7 +40,7 @@ class MiTestCaseBase(Base):
|
||||
pass
|
||||
Base.tearDown(self)
|
||||
|
||||
def spawnLldbMi(self, args=None):
|
||||
def spawnLldbMi(self, exe=None, args=None):
|
||||
import pexpect
|
||||
self.child = pexpect.spawn("%s --interpreter %s" % (
|
||||
self.lldbMiExec, args if args else ""), cwd=self.getBuildDir())
|
||||
@@ -49,6 +49,10 @@ class MiTestCaseBase(Base):
|
||||
self.child.logfile_read = open(self.mylog, "w")
|
||||
# wait until lldb-mi has started up and is ready to go
|
||||
self.expect(self.child_prompt, exactly=True)
|
||||
if exe:
|
||||
self.runCmd("-file-exec-and-symbols \"%s\"" % exe)
|
||||
# Testcases expect to be able to match output of this command,
|
||||
# see test_lldbmi_specialchars.
|
||||
|
||||
def runCmd(self, cmd):
|
||||
self.child.sendline(cmd)
|
||||
|
||||
@@ -22,7 +22,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
|
||||
def test_lldbmi_executable_option_file(self):
|
||||
"""Test that 'lldb-mi --interpreter %s' loads executable file."""
|
||||
|
||||
self.spawnLldbMi(args="%s" % self.myexe)
|
||||
self.spawnLldbMi(exe=self.myexe)
|
||||
|
||||
# Test that the executable is loaded when file was specified
|
||||
self.expect("-file-exec-and-symbols \"%s\"" % self.myexe)
|
||||
@@ -52,7 +52,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
|
||||
# Prepare path to executable
|
||||
path = "unknown_file"
|
||||
|
||||
self.spawnLldbMi(args="%s" % path)
|
||||
self.spawnLldbMi(exe=path)
|
||||
|
||||
# Test that the executable isn't loaded when unknown file was specified
|
||||
self.expect("-file-exec-and-symbols \"%s\"" % path)
|
||||
@@ -71,7 +71,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
|
||||
"""Test that 'lldb-mi --interpreter %s' loads executable which is specified via absolute path."""
|
||||
|
||||
# Prepare path to executable
|
||||
self.spawnLldbMi(args="%s" % self.myexe)
|
||||
self.spawnLldbMi(exe=self.myexe)
|
||||
|
||||
# Test that the executable is loaded when file was specified using
|
||||
# absolute path
|
||||
@@ -95,7 +95,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
|
||||
|
||||
# Prepare path to executable
|
||||
path = os.path.relpath(self.myexe, self.getBuildDir())
|
||||
self.spawnLldbMi(args="%s" % path)
|
||||
self.spawnLldbMi(exe=path)
|
||||
|
||||
# Test that the executable is loaded when file was specified using
|
||||
# relative path
|
||||
@@ -119,7 +119,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
|
||||
# Prepare path to executable
|
||||
path = "unknown_dir" + self.myexe
|
||||
|
||||
self.spawnLldbMi(args="%s" % path)
|
||||
self.spawnLldbMi(exe=path)
|
||||
|
||||
# Test that the executable isn't loaded when file was specified using
|
||||
# unknown path
|
||||
@@ -259,7 +259,7 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
|
||||
"""Test that 'lldb-mi --log' creates a log file in the current directory."""
|
||||
|
||||
logDirectory = self.getBuildDir()
|
||||
self.spawnLldbMi(args="%s --log" % self.myexe)
|
||||
self.spawnLldbMi(exe=self.myexe, args="--log")
|
||||
|
||||
# Test that the executable is loaded when file was specified
|
||||
self.expect("-file-exec-and-symbols \"%s\"" % self.myexe)
|
||||
@@ -296,9 +296,8 @@ class MiStartupOptionsTestCase(lldbmi_testcase.MiTestCaseBase):
|
||||
import tempfile
|
||||
logDirectory = tempfile.gettempdir()
|
||||
|
||||
self.spawnLldbMi(
|
||||
args="%s --log --log-dir=%s" %
|
||||
(self.myexe, logDirectory))
|
||||
self.spawnLldbMi(exe=self.myexe,
|
||||
args="--log --log-dir=%s" % logDirectory)
|
||||
|
||||
# Test that the executable is loaded when file was specified
|
||||
self.expect("-file-exec-and-symbols \"%s\"" % self.myexe)
|
||||
|
||||
@@ -53,7 +53,7 @@ class MiSyntaxTestCase(lldbmi_testcase.MiTestCaseBase):
|
||||
os.symlink(self.myexe, complicated_myexe)
|
||||
self.addTearDownHook(lambda: os.unlink(complicated_myexe))
|
||||
|
||||
self.spawnLldbMi(args="\"%s\"" % complicated_myexe)
|
||||
self.spawnLldbMi(exe=complicated_myexe)
|
||||
|
||||
# Test that the executable was loaded
|
||||
self.expect(
|
||||
|
||||
@@ -199,7 +199,7 @@ static bool LocateDSYMInVincinityOfExecutable(const ModuleSpec &module_spec,
|
||||
return false;
|
||||
}
|
||||
|
||||
FileSpec LocateExecutableSymbolFileDsym(const ModuleSpec &module_spec) {
|
||||
static FileSpec LocateExecutableSymbolFileDsym(const ModuleSpec &module_spec) {
|
||||
const FileSpec *exec_fspec = module_spec.GetFileSpecPtr();
|
||||
const ArchSpec *arch = module_spec.GetArchitecturePtr();
|
||||
const UUID *uuid = module_spec.GetUUIDPtr();
|
||||
|
||||
Reference in New Issue
Block a user