Exemple #1
0
def setup_regular_build(revision):
  """Sets up build with a particular revision."""
  release_build_bucket_path = environment.get_value('RELEASE_BUILD_BUCKET_PATH')
  release_build_urls = get_build_urls_list(release_build_bucket_path)
  job_type = environment.get_value('JOB_NAME')
  if not release_build_urls:
    logs.log_error('Error getting release build urls for job %s.' % job_type)
    return None

  release_build_url = revisions.find_build_url(release_build_bucket_path,
                                               release_build_urls, revision)
  if not release_build_url:
    logs.log_error(
        'Error getting build url for job %s (r%d).' % (job_type, revision))

    # Try setting up trunk build.
    return setup_trunk_build()

  base_build_dir = _base_build_dir(release_build_bucket_path)

  build_class = RegularBuild
  if environment.is_trusted_host():
    from bot.untrusted_runner import build_setup_host
    build_class = build_setup_host.RemoteRegularBuild

  target_weights = fuzzer_selection.get_fuzz_target_weights()
  build = build_class(
      base_build_dir,
      revision,
      release_build_url,
      target_weights=target_weights)
  if build.setup():
    return build

  return None
Exemple #2
0
    def test_empty_if_no_children(self):
        """Ensure that we function properly if a fuzzer has no children."""
        os.environ['TASK_NAME'] = 'fuzz'
        os.environ['JOB_NAME'] = 'some_job_blackbox'

        result = fuzzer_selection.get_fuzz_target_weights()

        self.assertEqual(result, {})
Exemple #3
0
    def test_weights_specified_for_children(self):
        """Ensure that we return the correct weights for a fuzzer with children."""
        os.environ['TASK_NAME'] = 'fuzz'
        os.environ['JOB_NAME'] = 'some_job_engine'

        result = fuzzer_selection.get_fuzz_target_weights()

        self.assertEqual(result, {'child_0': 1.5, 'child_1': 0.75})
Exemple #4
0
    def test_bailout_for_bad_task(self):
        """Ensure that we bail out and return None if called for non-fuzz tasks."""
        os.environ['TASK_NAME'] = 'minimize'
        os.environ['JOB_NAME'] = 'some_job'

        result = fuzzer_selection.get_fuzz_target_weights()

        self.assertIsNone(result)