diff options
author | Pavel Labath <pavel@labath.sk> | 2019-09-05 07:35:45 +0000 |
---|---|---|
committer | Pavel Labath <pavel@labath.sk> | 2019-09-05 07:35:45 +0000 |
commit | 45e3ce8d7653f80e8c5ff7e306112c35544e3d4b (patch) | |
tree | a4037d215ad21cbd1443ea8072d252cf5a53bfcd /lldb/packages/Python/lldbsuite/test | |
parent | 7790858b00de4c2e48ae6b171e642396f880b8c8 (diff) | |
download | bcm5719-llvm-45e3ce8d7653f80e8c5ff7e306112c35544e3d4b.tar.gz bcm5719-llvm-45e3ce8d7653f80e8c5ff7e306112c35544e3d4b.zip |
[dotest] Centralize initialization commands even more
Summary:
In r367234 we introduced a central place to hold the set up commands for
the various ways we have of launching lldb. However, a number of
commands still remained outside of that.
This patch moves the remaining set up commands into this function, which
allows us to remove manual clang module path setting code in
TestBatchMode.
One unfortunate victim of this approach is TestSTTYBeforeAndAfter which,
due to how it launches lldb (pexpect->expect->lldb), fails get the
quoting right. It would be possible to fix the quoting there, it would be a bit
icky, and none of the commands in this list are really relevant for what this
test is doing, so I just remove the commands outright.
Reviewers: JDevlieghere, jankratochvil
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D67173
llvm-svn: 371019
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
4 files changed, 21 insertions, 28 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/driver/batch_mode/TestBatchMode.py b/lldb/packages/Python/lldbsuite/test/driver/batch_mode/TestBatchMode.py index b474207e0b2..01e11fc096c 100644 --- a/lldb/packages/Python/lldbsuite/test/driver/batch_mode/TestBatchMode.py +++ b/lldb/packages/Python/lldbsuite/test/driver/batch_mode/TestBatchMode.py @@ -24,11 +24,9 @@ class DriverBatchModeTest(PExpectTest): self.build() exe = self.getBuildArtifact("a.out") - module_cache = self.getBuildArtifact("module.cache") # Pass CRASH so the process will crash and stop in batch mode. extra_args = ['-b', - '-o', "settings set symbols.clang-modules-cache-path '%s'"%module_cache, '-o', 'break set -n main', '-o', 'run', '-o', 'continue', @@ -57,11 +55,9 @@ class DriverBatchModeTest(PExpectTest): self.build() exe = self.getBuildArtifact("a.out") - module_cache = self.getBuildArtifact("module.cache") # Now do it again, and make sure if we don't crash, we quit: extra_args = ['-b', - '-o', "settings set symbols.clang-modules-cache-path '%s'"%module_cache, '-o', 'break set -n main', '-o', 'run', '-o', 'continue', @@ -96,7 +92,6 @@ class DriverBatchModeTest(PExpectTest): self.setTearDownCleanup() exe = self.getBuildArtifact("a.out") - module_cache = self.getBuildArtifact("module.cache") # Start up the process by hand, attach to it, and wait for its completion. # Attach is funny, since it looks like it stops with a signal on most Unixen so @@ -117,7 +112,6 @@ class DriverBatchModeTest(PExpectTest): extra_args = [ '-b', - '-o', "settings set symbols.clang-modules-cache-path '%s'"%module_cache, '-o', 'process attach -p %d'%victim_pid, '-o', "breakpoint set --file '%s' -p 'Stop here to unset keep_waiting' -N keep_waiting"%self.source, '-o', 'continue', diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 48dc81780e9..4b10331d42c 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -684,16 +684,31 @@ class Base(unittest2.TestCase): """Return absolute path to a file in the test's source directory.""" return os.path.join(self.getSourceDir(), name) - @staticmethod - def setUpCommands(): - return [ + @classmethod + def setUpCommands(cls): + commands = [ # Disable Spotlight lookup. The testsuite creates # different binaries with the same UUID, because they only # differ in the debug info, which is not being hashed. "settings set symbols.enable-external-lookup false", # Testsuite runs in parallel and the host can have also other load. - "settings set plugin.process.gdb-remote.packet-timeout 60"] + "settings set plugin.process.gdb-remote.packet-timeout 60", + + 'settings set symbols.clang-modules-cache-path "{}"'.format( + configuration.module_cache_dir), + "settings set use-color false", + ] + # Make sure that a sanitizer LLDB's environment doesn't get passed on. + if cls.platformContext and cls.platformContext.shlib_environment_var in os.environ: + commands.append('settings set target.env-vars {}='.format( + cls.platformContext.shlib_environment_var)) + + # Set environment variables for the inferior. + if lldbtest_config.inferior_env: + commands.append('settings set target.env-vars {}'.format( + lldbtest_config.inferior_env)) + return commands def setUp(self): """Fixture for unittest test case setup. @@ -1851,25 +1866,9 @@ class TestBase(Base): # decorators. Base.setUp(self) - # Set the clang modules cache path used by LLDB. - self.runCmd( - 'settings set symbols.clang-modules-cache-path "{}"'.format( - configuration.module_cache_dir)) - for s in self.setUpCommands(): self.runCmd(s) - # Disable color. - self.runCmd("settings set use-color false") - - # Make sure that a sanitizer LLDB's environment doesn't get passed on. - if 'DYLD_LIBRARY_PATH' in os.environ: - self.runCmd('settings set target.env-vars DYLD_LIBRARY_PATH=') - - # Set environment variables for the inferior. - if lldbtest_config.inferior_env: - self.runCmd('settings set target.env-vars {}'.format(lldbtest_config.inferior_env)) - if "LLDB_MAX_LAUNCH_COUNT" in os.environ: self.maxLaunchCount = int(os.environ["LLDB_MAX_LAUNCH_COUNT"]) diff --git a/lldb/packages/Python/lldbsuite/test/terminal/TestSTTYBeforeAndAfter.py b/lldb/packages/Python/lldbsuite/test/terminal/TestSTTYBeforeAndAfter.py index cb5a5cb9347..e994508911b 100644 --- a/lldb/packages/Python/lldbsuite/test/terminal/TestSTTYBeforeAndAfter.py +++ b/lldb/packages/Python/lldbsuite/test/terminal/TestSTTYBeforeAndAfter.py @@ -73,7 +73,7 @@ class TestSTTYBeforeAndAfter(TestBase): child.logfile_read = None # Invoke the lldb command. - child.sendline('%s %s' % (lldbtest_config.lldbExec, self.lldbOption)) + child.sendline(lldbtest_config.lldbExec) child.expect_exact(lldb_prompt) # Immediately quit. diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py index cff85346de5..04ca8d9b755 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py @@ -12,7 +12,7 @@ class VSCodeTestCaseBase(TestBase): self.assertTrue(os.path.exists(self.lldbVSCodeExec), 'lldb-vscode must exist') self.vscode = vscode.DebugAdaptor( - executable=self.lldbVSCodeExec, init_commands=Base.setUpCommands()) + executable=self.lldbVSCodeExec, init_commands=self.setUpCommands()) def build_and_create_debug_adaptor(self): self.build() |