def upload_log(log, log_time): """Upload the output into corresponding GCS logs bucket.""" fuzz_logs_bucket = environment.get_value('FUZZ_LOGS_BUCKET') if not fuzz_logs_bucket: return fuzzer_logs.upload_to_logs(fuzz_logs_bucket, log, time=log_time)
def upload_testcase_output(crash_result, testcase_path): """Upload the output into corresponding GCS logs bucket.""" fuzz_logs_bucket = environment.get_value('FUZZ_LOGS_BUCKET') if not fuzz_logs_bucket: return # Add revision information to the logs. app_revision = environment.get_value('APP_REVISION') job_name = environment.get_value('JOB_NAME') components = revisions.get_component_list(app_revision, job_name) component_revisions = (revisions.format_revision_list(components, use_html=False) or 'Not available.\n') revisions_header = ( 'Component revisions (build r{app_revision}):\n{component_revisions}\n' .format(app_revision=app_revision, component_revisions=component_revisions)) return_code_header = 'Return code: %s\n\n' % crash_result.return_code symbolized_output = crash_result.get_stacktrace() # To provide consistency between stats and logs, we use timestamp taken # when the log has been parsed. log_time = _get_testcase_time(testcase_path) fuzzer_logs.upload_to_logs(fuzz_logs_bucket, revisions_header + return_code_header + symbolized_output, time=log_time)
def test_upload_to_logs(self): """Test a simple call to upload_to_logs.""" mock_gsutil = mock.MagicMock() self.mock.write_data.return_value = mock_gsutil fuzzer_logs.upload_to_logs('fake-gcs-bucket', 'fake content') self.mock.write_data.assert_called_once_with( 'fake content', 'gs://fake-gcs-bucket/fuzzer_1/fake_job/2017-03-21/11:15:13:666666.log' )
def upload_testcase(testcase_path, log_time): """Uploads testcase so that a log file can be matched with it folder.""" fuzz_logs_bucket = environment.get_value('FUZZ_LOGS_BUCKET') if not fuzz_logs_bucket: return with open(testcase_path, 'rb') as file_handle: testcase_contents = file_handle.read() fuzzer_logs.upload_to_logs(fuzz_logs_bucket, testcase_contents, time=log_time, file_extension='.testcase')
def test_upload_to_logs_with_all_arguments(self): """Test a call to upload_to_logs with all arguments being passed.""" mock_gsutil = mock.MagicMock() self.mock.write_data.return_value = mock_gsutil fuzzer_logs.upload_to_logs('gcs-bucket', 'fake content', time=self.fake_log_time, fuzzer_name='fuzzer_2', job_type='another_job') self.mock.write_data.assert_called_once_with( 'fake content', 'gs://gcs-bucket/fuzzer_2/another_job/2017-04-22/12:16:14:777777.log' )