Exemple #1
0
    def testPutAndGet(self):
        isolated.Put(
            (('Mac Builder', 'f9f2b720', 'telemetry_perf', '7c7e90be'),
             ('Mac Builder', 'f35be4f1', 'telemetry_perf', '38e2f262')))

        isolated_hash = isolated.Get('Mac Builder', 'f9f2b720',
                                     'telemetry_perf')
        self.assertEqual(isolated_hash, '7c7e90be')
  def setUp(self):
    self.testbed = testbed.Testbed()
    self.testbed.activate()
    self.testbed.init_datastore_v3_stub()
    self.testbed.init_memcache_stub()
    ndb.get_context().clear_cache()

    isolated.Put((
        ('Mac Builder', 'f9f2b720', 'telemetry_perf_tests', '7c7e90be'),))
Exemple #3
0
    def post(self):
        """Add new isolated information.

    Args:
      builder_name: The name of the builder that produced the isolated.
      git_hash: The git hash of the commit the isolated is for. If the isolated
          is for a DEPS roll, it's the git hash of the commit inside the roll.
      isolated_map: A JSON dict mapping the target names to the isolated hashes.
    """
        # Check permissions.
        if self.request.remote_addr not in utils.GetIpWhitelist():
            self.response.set_status(403)
            self.response.write('Permission denied')
            return

        # Get parameters.
        required_parameters = ('builder_name', 'git_hash', 'isolated_map')

        for given_parameter in self.request.POST:
            if given_parameter not in required_parameters:
                self.response.set_status(400)
                self.response.write('Unknown parameter: %s' % given_parameter)
                return

        for required_parameter in required_parameters:
            if required_parameter not in self.request.POST:
                self.response.set_status(400)
                self.response.write('Missing parameter: %s' %
                                    required_parameter)
                return

            if not self.request.get(required_parameter):
                self.response.set_status(400)
                self.response.write('Empty parameter: %s' % required_parameter)
                return

        builder_name = self.request.get('builder_name')
        git_hash = self.request.get('git_hash')
        isolated_map = self.request.get('isolated_map')

        # Validate parameters.
        try:
            isolated_map = json.loads(isolated_map)
        except ValueError:
            self.response.set_status(400)
            self.response.write('isolated_map is not valid JSON: %s' %
                                isolated_map)
            return

        # Put information into the datastore.
        isolated_infos = {
            (builder_name, git_hash, target, isolated_hash)
            for target, isolated_hash in isolated_map.iteritems()
        }
        isolated.Put(isolated_infos)
    def testSuccesfulBuilderLookupForAllBuilders(self):
        builder_testers = (
            ('arm-builder-rel', 'health-plan-clankium-phone'),
            ('Android Builder', 'Android Nexus5 Perf'),
            ('Android arm64 Builder', 'Android Nexus5X Perf'),
            ('Linux Builder', 'Linux Perf'),
            ('Mac Builder', 'Mac Air Perf'),
            ('Win Builder', 'Win 7 Perf'),
            ('Win x64 Builder', 'Win Zenbook Perf'),
        )

        isolated.Put(
            (builder, 'git hash', 'telemetry_perf_tests', hex(hash(builder)))
            for builder, _ in builder_testers)

        for builder, tester in builder_testers:
            change = change_module.Change(change_module.Dep('src', 'git hash'))
            execution = find_isolated.FindIsolated(tester).Start(change)
            execution.Poll()

            self.assertExecutionSuccess(execution)
            self.assertEqual(execution.result_arguments,
                             {'isolated_hash': hex(hash(builder))})