Example #1
0
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()
Example #2
0
  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)
Example #4
0
  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