OLD | NEW |
1 # Copyright (C) 2010 Google Inc. All rights reserved. | 1 # Copyright (C) 2010 Google Inc. All rights reserved. |
2 # | 2 # |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
(...skipping 1487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1498 stderr = self._executive.run_command(['c++filt'], input=output,
decode_output=False) | 1498 stderr = self._executive.run_command(['c++filt'], input=output,
decode_output=False) |
1499 | 1499 |
1500 name_str = name or '<unknown process name>' | 1500 name_str = name or '<unknown process name>' |
1501 pid_str = str(pid or '<unknown>') | 1501 pid_str = str(pid or '<unknown>') |
1502 stdout_lines = (stdout or '<empty>').decode('utf8', 'replace').splitline
s() | 1502 stdout_lines = (stdout or '<empty>').decode('utf8', 'replace').splitline
s() |
1503 stderr_lines = (stderr or '<empty>').decode('utf8', 'replace').splitline
s() | 1503 stderr_lines = (stderr or '<empty>').decode('utf8', 'replace').splitline
s() |
1504 return (stderr, 'crash log for %s (pid %s):\n%s\n%s\n' % (name_str, pid_
str, | 1504 return (stderr, 'crash log for %s (pid %s):\n%s\n%s\n' % (name_str, pid_
str, |
1505 '\n'.join(('STDOUT: ' + l) for l in stdout_lines), | 1505 '\n'.join(('STDOUT: ' + l) for l in stdout_lines), |
1506 '\n'.join(('STDERR: ' + l) for l in stderr_lines))) | 1506 '\n'.join(('STDERR: ' + l) for l in stderr_lines))) |
1507 | 1507 |
| 1508 def _get_leak_log(self, name, pid, stdout, stderr, newer_than): |
| 1509 match = re.match('#LEAK - (\S+) pid (\d+) (.+)\n', stderr) |
| 1510 return (stderr, match.group(3)) |
| 1511 |
1508 def look_for_new_crash_logs(self, crashed_processes, start_time): | 1512 def look_for_new_crash_logs(self, crashed_processes, start_time): |
1509 pass | 1513 pass |
1510 | 1514 |
1511 def look_for_new_samples(self, unresponsive_processes, start_time): | 1515 def look_for_new_samples(self, unresponsive_processes, start_time): |
1512 pass | 1516 pass |
1513 | 1517 |
1514 def sample_process(self, name, pid): | 1518 def sample_process(self, name, pid): |
1515 pass | 1519 pass |
1516 | 1520 |
1517 def virtual_test_suites(self): | 1521 def virtual_test_suites(self): |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1746 if name.find('/') != -1: | 1750 if name.find('/') != -1: |
1747 _log.error("Virtual test suites names cannot contain /'s: %s" %
name) | 1751 _log.error("Virtual test suites names cannot contain /'s: %s" %
name) |
1748 return | 1752 return |
1749 self.name = 'virtual/' + name + '/' + base | 1753 self.name = 'virtual/' + name + '/' + base |
1750 self.base = base | 1754 self.base = base |
1751 self.args = args | 1755 self.args = args |
1752 self.tests = tests or set() | 1756 self.tests = tests or set() |
1753 | 1757 |
1754 def __repr__(self): | 1758 def __repr__(self): |
1755 return "VirtualTestSuite('%s', '%s', %s)" % (self.name, self.base, self.
args) | 1759 return "VirtualTestSuite('%s', '%s', %s)" % (self.name, self.base, self.
args) |
OLD | NEW |