Exemplo n.º 1
0
def _get_revision_range_html(job_type, start_revision, end_revision=None):
  """Return revision range html for a revision range and job type."""
  if end_revision is None:
    end_revision = start_revision

  component_rev_list = revisions.get_component_range_list(
      start_revision, end_revision, job_type)
  if not component_rev_list:
    return ('%s:%s (No component revisions found!)' % (start_revision,
                                                       end_revision))

  return revisions.format_revision_list(component_rev_list)
Exemplo n.º 2
0
    def test_get_component_revision_list_src_map(self, mock_get_url_content,
                                                 mock_get_config):
        """Test get_component_range_list for srcmap jobs."""
        mock_get_config.return_value = self.MockConfigOSSFuzz()
        self.mock.default_project_name.return_value = 'oss-fuzz'
        mock_get_url_content.side_effect = self.mock_get_url_content

        result = revisions.get_component_range_list(1337, 9001,
                                                    SRCMAP_JOB_TYPE)
        result_as_html = revisions.format_revision_list(result)
        expected_html = self._read_data_file('srcmap_expected_html.txt')
        self.assertEqual(result_as_html, expected_html)
Exemplo n.º 3
0
def get_chromium_component_start_and_end_revision(start_revision, end_revision,
                                                  job_type):
  """Get revisions from chromium component."""
  component_rev_list = revisions.get_component_range_list(
      start_revision, end_revision, job_type)

  for component_rev in component_rev_list:
    if component_rev['component'] == 'Chromium':
      start_revision, end_revision = (
          revisions.get_start_and_end_revision(component_rev['link_text']))

  return start_revision, end_revision
Exemplo n.º 4
0
  def test_get_component_range_list_same_hash(self, mock_get_url_content,
                                              mock_get_config):
    """Test get_component_range_list for 2 builds that have different revision
    numbers, but same revision hash after mapping."""
    mock_get_config.return_value = self.MockConfigOSSFuzz()
    self.mock.default_project_name.return_value = 'oss-fuzz'
    mock_get_url_content.side_effect = self.mock_get_url_content

    result = revisions.get_component_range_list(1337, 1338, SRCMAP_JOB_TYPE)
    result_as_html = revisions.format_revision_list(result)
    expected_html = self._read_data_file('srcmap_expected_html_2.txt')
    self.assertEqual(result_as_html, expected_html)
Exemplo n.º 5
0
    def test_get_component_range_list_0_start_custom(self,
                                                     mock_get_url_content,
                                                     mock_get_config):
        """Test get_component_range_list with a '0' start_revision."""
        mock_get_config.return_value = self.MockConfigOSSFuzz()
        self.mock.default_project_name.return_value = 'oss-fuzz'
        mock_get_url_content.side_effect = self.mock_get_url_content

        result = revisions.get_component_range_list(0, 1338, SRCMAP_JOB_TYPE)
        result_as_html = revisions.format_revision_list(result)
        expected_html = self._read_data_file('srcmap_expected_html_3.txt')
        self.assertEqual(result_as_html, expected_html)
Exemplo n.º 6
0
def get_chromium_component_start_and_end_revision(start_revision, end_revision,
                                                  job_type):
    """Get revisions from chromium component."""
    component_rev_list = revisions.get_component_range_list(
        start_revision, end_revision, job_type)

    for component_rev in component_rev_list:
        if component_rev["component"] == "Chromium":
            start_revision, end_revision = revisions.get_start_and_end_revision(
                component_rev["link_text"])

    return start_revision, end_revision
Exemplo n.º 7
0
  def test_get_component_range_list_clank(
      self, mock_get_git_hash, mock_get_url_content, mock_get_config):
    """Test that get_component_range_list works properly for the Clank repo."""
    mock_get_config.return_value = self.MockConfigChromium()
    self.mock.default_project_name.return_value = 'chromium'
    mock_get_url_content.side_effect = self.mock_get_url_content
    mock_get_git_hash.side_effect = self.mock_get_git_hash_for_git_commit_pos

    result = revisions.get_component_range_list(260548, 260552,
                                                ANDROID_JOB_TYPE)
    result_as_html = revisions.format_revision_list(result)

    expected_html = self._read_data_file('clank_expected_html.txt')
    self.assertEqual(result_as_html, expected_html)
Exemplo n.º 8
0
  def test_get_component_range_list_chromium(self, mock_get_git_hash,
                                             mock_get_url_content,
                                             mock_get_config):
    """Test that get_component_range_list works properly for the Chromium
        repo."""
    mock_get_config.return_value = self.MockConfigChromium()
    self.mock.default_project_name.return_value = "chromium"
    mock_get_url_content.side_effect = self.mock_get_url_content
    mock_get_git_hash.side_effect = self.mock_get_git_hash_for_git_commit_pos

    result = revisions.get_component_range_list(336903, 336983, BASIC_JOB_TYPE)
    result_as_html = revisions.format_revision_list(result)

    expected_html = self._read_data_file("chromium_expected_html.txt")
    self.assertEqual(result_as_html, expected_html)
Exemplo n.º 9
0
def _get_commits(commit_range, job_type):
    """Get commits from range."""
    start, end = revisions.get_start_and_end_revision(commit_range)
    components = revisions.get_component_range_list(start, end, job_type)

    commits = components[0]['link_text']

    if ':' not in commits:
        return commits, commits

    old_commit, new_commit = commits.split(':')
    if old_commit == '0':
        old_commit = ''

    return old_commit, new_commit
Exemplo n.º 10
0
  def get(self):
    """GET handler."""
    revision_range = self.request.get('range')
    job_type = self.request.get('job')

    try:
      [start_revision, end_revision] = revision_range.split(':')
    except:
      raise helpers.EarlyExitException('Bad revision range.', 400)

    component_revisions_list = revisions.get_component_range_list(
        start_revision, end_revision, job_type)
    if not component_revisions_list:
      raise helpers.EarlyExitException('Failed to get component revisions.',
                                       400)

    self.render('revisions-info.html',
                {'info': {
                    'componentRevisionsList': component_revisions_list
                }})
Exemplo n.º 11
0
    def get(self):
        """GET handler."""
        job_type = request.get('job')

        revision = request.get('revision')
        if revision:
            if not revision.isdigit():
                raise helpers.EarlyExitException('Revision is not an integer.',
                                                 400)
            start_revision = end_revision = revision
        else:
            revision_range = request.get('range')
            if revision_range:
                try:
                    start_revision, end_revision = revision_range.split(':')
                except:
                    raise helpers.EarlyExitException('Bad revision range.',
                                                     400)
            if not start_revision.isdigit():
                raise helpers.EarlyExitException(
                    'Start revision is not an integer.', 400)
            if not end_revision.isdigit():
                raise helpers.EarlyExitException(
                    'End revision is not an integer.', 400)

        component_revisions_list = revisions.get_component_range_list(
            start_revision, end_revision, job_type)
        if not component_revisions_list:
            raise helpers.EarlyExitException(
                'Failed to get component revisions.', 400)

        return self.render(
            'revisions-info.html',
            {'info': {
                'componentRevisionsList': component_revisions_list
            }})