def mock_get_crash_data(output, symbolize_flag=True): # pylint: disable=unused-argument """Mock get_crash_data.""" if 'crash' in output: stack_analyzer_state = stack_analyzer.StackAnalyzerState() stack_analyzer_state.crash_state = 'state' stack_analyzer_state.crash_type = 'Null-dereference' return stack_analyzer_state return stack_analyzer.StackAnalyzerState()
def setUp(self): helpers.patch(self, [ 'chrome.crash_uploader.FileMetadataInfo', 'bot.tasks.setup.archive_testcase_and_dependencies_in_gcs', 'crash_analysis.stack_parsing.stack_analyzer.get_crash_data', 'fuzzing.tests.get_command_line_for_application', 'base.utils.get_crash_stacktrace_output', 'crash_analysis.crash_analyzer.ignore_stacktrace', 'crash_analysis.crash_analyzer.is_security_issue', ]) helpers.patch_environ(self) test_utils.set_up_pyfakefs(self) self.mock.get_command_line_for_application.return_value = 'cmd' dummy_state = stack_analyzer.StackAnalyzerState() dummy_state.crash_type = 'type' dummy_state.crash_address = 'address' dummy_state.crash_state = 'state' dummy_state.crash_stacktrace = 'orig_trace' dummy_state.frames = ['frame 1', 'frame 2'] self.mock.get_crash_data.return_value = dummy_state self.mock.get_crash_stacktrace_output.return_value = 'trace' self.mock.archive_testcase_and_dependencies_in_gcs.return_value = ( 'fuzzed_key', True, 'absolute_path', 'archive_filename') environment.set_value('FILTER_FUNCTIONAL_BUGS', False) with open('/stack_file_path', 'w') as f: f.write('unsym')
def test_succeed(self): """Test invoking parse().""" dummy_state = stack_analyzer.StackAnalyzerState() dummy_state.crash_type = 'type' dummy_state.crash_address = 'address' dummy_state.crash_state = 'state' dummy_state.crash_stacktrace = 'orig_trace' self.mock.get_crash_data.return_value = dummy_state resp = self.app.post_json('/', { 'stacktrace': 'test', 'job': 'job_type' }) self.assertEqual(200, resp.status_int) self.assertEqual('type', resp.json['crash_type']) self.assertEqual('address', resp.json['crash_address']) self.assertEqual('state', resp.json['crash_state']) self.mock.get_crash_data.assert_called_once_with('test', symbolize_flag=False)
def _make_crash(self, trace, state='state'): """Make crash.""" self.mock.get_real_revision.return_value = 'this.is.fake.ver' self.mock.get_command_line_for_application.return_value = 'cmd' dummy_state = stack_analyzer.StackAnalyzerState() dummy_state.crash_type = 'type' dummy_state.crash_address = 'address' dummy_state.crash_state = state dummy_state.crash_stacktrace = 'orig_trace' dummy_state.crash_frames = ['frame 1', 'frame 2'] self.mock.get_crash_data.return_value = dummy_state self.mock.get_symbolized_stack_bytes.return_value = 'f00df00d' self.mock.get_crash_stacktrace_output.return_value = trace self.mock.is_security_issue.return_value = True self.mock.ignore_stacktrace.return_value = False with open('/stack_file_path', 'w') as f: f.write('unsym') crash = fuzz_task.Crash( tests.Crash('dir/path-http-name', 123, 11, ['res'], ['ges'], '/stack_file_path')) return crash