labath created this revision.
labath added reviewers: JDevlieghere, jankratochvil.

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.


https://reviews.llvm.org/D67173

Files:
  packages/Python/lldbsuite/test/driver/batch_mode/TestBatchMode.py
  packages/Python/lldbsuite/test/lldbtest.py
  packages/Python/lldbsuite/test/terminal/TestSTTYBeforeAndAfter.py
  packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py

Index: packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===================================================================
--- packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
+++ packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
@@ -12,7 +12,7 @@
         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()
Index: packages/Python/lldbsuite/test/terminal/TestSTTYBeforeAndAfter.py
===================================================================
--- packages/Python/lldbsuite/test/terminal/TestSTTYBeforeAndAfter.py
+++ packages/Python/lldbsuite/test/terminal/TestSTTYBeforeAndAfter.py
@@ -73,7 +73,7 @@
         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.
Index: packages/Python/lldbsuite/test/lldbtest.py
===================================================================
--- packages/Python/lldbsuite/test/lldbtest.py
+++ packages/Python/lldbsuite/test/lldbtest.py
@@ -684,16 +684,31 @@
         """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 ' +
+                    lldbtest_config.inferior_env)
+        return commands
 
     def setUp(self):
         """Fixture for unittest test case setup.
@@ -1851,25 +1866,9 @@
         # 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"])
 
Index: packages/Python/lldbsuite/test/driver/batch_mode/TestBatchMode.py
===================================================================
--- packages/Python/lldbsuite/test/driver/batch_mode/TestBatchMode.py
+++ packages/Python/lldbsuite/test/driver/batch_mode/TestBatchMode.py
@@ -24,11 +24,9 @@
         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 @@
         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 @@
         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 @@
 
         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',
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to