aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2016-03-04 11:27:00 +0000
committerPavel Labath <labath@google.com>2016-03-04 11:27:00 +0000
commit19f937ae92e6f44e22ecb515d65583ec25a7b5a3 (patch)
tree2efa43292e7c2aeab2e212020faf0bfe5357aed4
parent16d3fd8ba1be4c075b39d07fe63997e781da426c (diff)
downloadllvm-19f937ae92e6f44e22ecb515d65583ec25a7b5a3.zip
llvm-19f937ae92e6f44e22ecb515d65583ec25a7b5a3.tar.gz
llvm-19f937ae92e6f44e22ecb515d65583ec25a7b5a3.tar.bz2
Resumbit "Fetch remote log files from LLGS tests"
The problem with the original patch (and my first attempt to fix) was that the value debug monitor flags could persist from one test to another. Resetting the value in the setUp() function fixes the problem. llvm-svn: 262713
-rw-r--r--lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py34
1 files changed, 29 insertions, 5 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
index dde80aa..aa86d3c 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
@@ -73,6 +73,8 @@ class GdbRemoteTestCaseBase(TestBase):
TestBase.setUp(self)
self.setUpBaseLogging()
+ self._remote_server_log_file = None
+ self.debug_monitor_extra_args = []
if self.isVerboseLoggingRequested():
# If requested, full logs go to a log file
@@ -104,10 +106,35 @@ class GdbRemoteTestCaseBase(TestBase):
self.stub_hostname = "localhost"
def tearDown(self):
+ if self._remote_server_log_file is not None:
+ lldb.remote_platform.Get(lldb.SBFileSpec(self._remote_server_log_file),
+ lldb.SBFileSpec(self.getLocalServerLogFile()))
+ lldb.remote_platform.Run(lldb.SBPlatformShellCommand("rm " + self._remote_server_log_file))
+ self._remote_server_log_file = None
+
self.logger.removeHandler(self._verbose_log_handler)
self._verbose_log_handler = None
TestBase.tearDown(self)
+ def getLocalServerLogFile(self):
+ return self.log_basename + "-server.log"
+
+ def setUpServerLogging(self, is_llgs):
+ if len(lldbtest_config.channels) == 0:
+ return # No logging requested
+
+ if lldb.remote_platform:
+ log_file = lldbutil.join_remote_paths(lldb.remote_platform.GetWorkingDirectory(), "server.log")
+ self._remote_server_log_file = log_file
+ else:
+ log_file = self.getLocalServerLogFile()
+
+ if is_llgs:
+ self.debug_monitor_extra_args.append("--log-file=" + log_file)
+ self.debug_monitor_extra_args.append("--log-channels={}".format(":".join(lldbtest_config.channels)))
+ else:
+ self.debug_monitor_extra_args = ["--log-file=" + self.log_file, "--log-flags=0x800000"]
+
def get_next_port(self):
return 12000 + random.randint(0,3999)
@@ -214,10 +241,7 @@ class GdbRemoteTestCaseBase(TestBase):
self.skipTest("lldb-server exe not found")
self.debug_monitor_extra_args = ["gdbserver"]
-
- if len(lldbtest_config.channels) > 0:
- self.debug_monitor_extra_args.append("--log-file={}-server.log".format(self.log_basename))
- self.debug_monitor_extra_args.append("--log-channels={}".format(":".join(lldbtest_config.channels)))
+ self.setUpServerLogging(is_llgs=True)
if use_named_pipe:
(self.named_pipe_path, self.named_pipe, self.named_pipe_fd) = self.create_named_pipe()
@@ -226,7 +250,7 @@ class GdbRemoteTestCaseBase(TestBase):
self.debug_monitor_exe = get_debugserver_exe()
if not self.debug_monitor_exe:
self.skipTest("debugserver exe not found")
- self.debug_monitor_extra_args = ["--log-file={}-server.log".format(self.log_basename), "--log-flags=0x800000"]
+ self.setUpServerLogging(is_llgs=False)
if use_named_pipe:
(self.named_pipe_path, self.named_pipe, self.named_pipe_fd) = self.create_named_pipe()
# The debugserver stub has a race on handling the 'k' command, so it sends an X09 right away, then sends the real X notification