Index: client/site_tests/logging_CrashSender/logging_CrashSender.py |
diff --git a/client/site_tests/logging_CrashSender/logging_CrashSender.py b/client/site_tests/logging_CrashSender/logging_CrashSender.py |
index 47e5f93c57b359634379186da99cb7608aa559f1..4c6f06f5a3516f883ae6a0fcb1d7b56b96ed1f94 100644 |
--- a/client/site_tests/logging_CrashSender/logging_CrashSender.py |
+++ b/client/site_tests/logging_CrashSender/logging_CrashSender.py |
@@ -62,7 +62,7 @@ class logging_CrashSender(site_crash_test.CrashTest): |
def _test_sender_simple_old_minidump(self): |
"""Test that old minidumps and metadata are sent.""" |
dmp_path = self.write_crash_dir_entry('fake.dmp', '') |
- meta_path = self.write_fake_meta('fake.meta', 'fake') |
+ meta_path = self.write_fake_meta('fake.meta', 'fake', dmp_path) |
self._shift_file_mtime(dmp_path, _25_HOURS_AGO) |
self._shift_file_mtime(meta_path, _25_HOURS_AGO) |
self._check_simple_minidump_send(meta_path) |
@@ -72,7 +72,9 @@ class logging_CrashSender(site_crash_test.CrashTest): |
"""Test sending a single kcrash report.""" |
kcrash_fake_report = self.write_crash_dir_entry( |
'kernel.today.kcrash', '') |
- self.write_fake_meta('kernel.today.meta', 'kernel') |
+ self.write_fake_meta('kernel.today.meta', |
+ 'kernel', |
+ kcrash_fake_report) |
result = self._call_sender_one_crash(report=kcrash_fake_report) |
if (result['report_exists'] or |
result['rate_count'] != 1 or |
@@ -198,8 +200,11 @@ class logging_CrashSender(site_crash_test.CrashTest): |
def _test_sender_incomplete_metadata(self): |
"""Test that incomplete metadata file is removed once old.""" |
- meta_file = self.write_crash_dir_entry('incomplete.meta', 'half=1') |
dmp_file = self.write_crash_dir_entry('incomplete.dmp', '') |
+ meta_file = self.write_fake_meta('incomplete.meta', |
+ 'unknown', |
+ dmp_file, |
+ complete=False) |
# As new files, we expect crash_sender to leave these alone. |
results = self._call_sender_one_crash() |
if ('Removing recent incomplete report' in results['output'] or |
@@ -214,6 +219,19 @@ class logging_CrashSender(site_crash_test.CrashTest): |
'Old unknown/incomplete files were not removed') |
+ def _test_sender_missing_payload(self): |
+ meta_file = self.write_fake_meta('bad.meta', |
+ 'unknown', |
+ 'bad.dmp') |
+ other_file = self.write_crash_dir_entry('bad.other', '') |
+ results = self._call_sender_one_crash(report=meta_file) |
+ # Should remove this file. |
+ if (not 'Missing payload' in results['output'] or |
+ os.path.exists(meta_file) or |
+ os.path.exists(other_file)): |
+ raise error.TestFail('Missing payload case handled wrong') |
+ |
+ |
def _test_cron_runs(self): |
"""Test sender runs successfully as part of the hourly cron job. |
@@ -252,4 +270,5 @@ class logging_CrashSender(site_crash_test.CrashTest): |
'sender_send_fails', |
'sender_orphaned_files', |
'sender_incomplete_metadata', |
+ 'sender_missing_payload', |
'cron_runs']) |