Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Unified Diff: client/site_tests/logging_KernelCrash/logging_KernelCrash.py

Issue 4000005: autotest: Test new kernel signature generation (Closed) Base URL: http://git.chromium.org/git/autotest.git
Patch Set: no really... Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « client/bin/site_crash_test.py ('k') | client/site_tests/logging_UserCrash/logging_UserCrash.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/site_tests/logging_KernelCrash/logging_KernelCrash.py
diff --git a/client/site_tests/logging_KernelCrash/logging_KernelCrash.py b/client/site_tests/logging_KernelCrash/logging_KernelCrash.py
index c0b5f7d5d8f714dd0bd3817a505a46e466488755..1e7881956422b96496dfb96c3e82772361e9e7bf 100644
--- a/client/site_tests/logging_KernelCrash/logging_KernelCrash.py
+++ b/client/site_tests/logging_KernelCrash/logging_KernelCrash.py
@@ -21,32 +21,52 @@ class logging_KernelCrash(site_crash_test.CrashTest):
if not self._log_reader.can_find(
'Kernel does not support crash dumping'):
raise error.TestFail(
- 'Could not find kernel crash found message')
+ 'Could not find kernel crash enabling message')
def _get_kcrash_name(self):
- filename_match = re.search(
- r'Collected kernel crash diagnostics into (\S+)',
+ filename_match = re.search(r'Stored kcrash to (\S+)',
self._log_reader.get_logs())
if not filename_match:
return None
return filename_match.group(1)
+ def _is_signature_match(self, signature):
+ return (re.match(r'kernel-write_breakme-[0-9A-F]{8}$', signature) is
+ not None)
+
+
def _test_reporter_kcrash_storage(self):
"""Test that crash_reporter has properly stored the kcrash report."""
if not self._log_reader.can_find('Cleared kernel crash diagnostics'):
raise error.TestFail('Could not find clearing message')
+ announce_match = re.search(
+ r'Received .* from kernel \(signature ([^\)]+)\) \(([^\)]+)\)',
+ self._log_reader.get_logs())
+
+ if not announce_match:
+ raise error.TestFail('Could not find kernel crash announcement')
+
+ if not self._is_signature_match(announce_match.group(1)):
+ raise error.TestFail(
+ 'Kernel crash signature (%s) did not match expected pattern' %
+ announce_match.group(1))
+
kcrash_report = self._get_kcrash_name()
if self._consent:
if kcrash_report is None:
raise error.TestFail(
'Could not find message with kcrash filename')
+ if announce_match.group(2) != 'handling':
+ raise error.TestFail('Did not announce handling of kcrash')
else:
if kcrash_report is not None:
raise error.TestFail('Should not have found kcrash filename')
+ if announce_match.group(2) != 'ignoring':
+ raise error.TestFail('Did not announce ignoring of kcrash')
return
if not os.path.exists(kcrash_report):
@@ -78,6 +98,8 @@ class logging_KernelCrash(site_crash_test.CrashTest):
raise error.TestFail('kcrash exec name or report kind wrong')
if result['report_payload'] != kcrash_report:
raise error.TestFail('Sent the wrong kcrash report')
+ if not self._is_signature_match(result['sig']):
+ raise error.TestFail('Sent the wrong kcrash signature')
def run_once(self, is_before, consent):
« no previous file with comments | « client/bin/site_crash_test.py ('k') | client/site_tests/logging_UserCrash/logging_UserCrash.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698