コード例 #1
0
    def _UpdateMasterFlakeAnalysis(self,
                                   master_name,
                                   builder_name,
                                   build_number,
                                   step_name,
                                   master_build_number,
                                   test_name,
                                   version_number,
                                   pass_rate,
                                   flake_swarming_task,
                                   has_valid_artifact=True):
        """Update MasterFlakeAnalysis to include result of the swarming task."""
        master_flake_analysis = MasterFlakeAnalysis.GetVersion(
            master_name,
            builder_name,
            master_build_number,
            step_name,
            test_name,
            version=version_number)
        logging.info(
            'Updating MasterFlakeAnalysis swarming task data %s/%s/%s/%s/%s',
            master_name, builder_name, master_build_number, step_name,
            test_name)

        data_point = DataPoint()
        data_point.build_number = build_number
        data_point.pass_rate = pass_rate
        data_point.task_id = flake_swarming_task.task_id
        data_point.has_valid_artifact = has_valid_artifact

        # Include git information about each build that was run.
        build_info = build_util.GetBuildInfo(master_name, builder_name,
                                             build_number)
        data_point.commit_position = build_info.commit_position
        data_point.git_hash = build_info.chromium_revision

        if build_number > 0:
            previous_build = build_util.GetBuildInfo(master_name, builder_name,
                                                     build_number - 1)
            data_point.previous_build_commit_position = previous_build.commit_position
            data_point.previous_build_git_hash = previous_build.chromium_revision
            data_point.blame_list = _GetCommitsBetweenRevisions(
                previous_build.chromium_revision, build_info.chromium_revision)
        else:
            data_point.blame_list = build_info.blame_list

        master_flake_analysis.data_points.append(data_point)

        results = flake_swarming_task.GetFlakeSwarmingTaskData()
        # TODO(lijeffrey): Determine whether or not this flake swarming task
        # was a cache hit (already ran results for more iterations than were
        # requested) and update results['cache_hit'] accordingly.
        master_flake_analysis.swarming_rerun_results.append(results)
        master_flake_analysis.put()
コード例 #2
0
    def testGetRevisionAtCommitPosition(self):
        data_point = DataPoint()
        data_point.blame_list = ['r1', 'r2', 'r3']
        data_point.commit_position = 100

        self.assertEqual('r1', data_point.GetRevisionAtCommitPosition(98))
        self.assertEqual('r2', data_point.GetRevisionAtCommitPosition(99))
        self.assertEqual('r3', data_point.GetRevisionAtCommitPosition(100))
コード例 #3
0
    def testGetDictOfCommitPositionAndRevision(self):
        data_point = DataPoint()
        data_point.blame_list = ['r1', 'r2', 'r3']
        data_point.commit_position = 100

        expected_CLs = {100: 'r3', 99: 'r2', 98: 'r1'}

        self.assertEqual(expected_CLs,
                         data_point.GetDictOfCommitPositionAndRevision())
コード例 #4
0
    def testGetCommitPosition(self):
        data_point = DataPoint()
        data_point.blame_list = ['r1', 'r2', 'r3']
        data_point.commit_position = 100
        data_point.previous_build_commit_position = 97

        self.assertEqual(98, data_point.GetCommitPosition('r1'))
        self.assertEqual(99, data_point.GetCommitPosition('r2'))
        self.assertEqual(100, data_point.GetCommitPosition('r3'))
コード例 #5
0
def _GenerateDataPoint(pass_rate=None,
                       build_number=None,
                       task_id=None,
                       try_job_url=None,
                       commit_position=None,
                       git_hash=None,
                       previous_build_commit_position=None,
                       previous_build_git_hash=None,
                       blame_list=None):
    data_point = DataPoint()
    data_point.pass_rate = pass_rate
    data_point.build_number = build_number
    data_point.task_id = task_id
    data_point.try_job_url = try_job_url
    data_point.commit_position = commit_position
    data_point.git_hash = git_hash
    data_point.previous_build_commit_position = previous_build_commit_position
    data_point.previous_build_git_hash = previous_build_git_hash
    data_point.blame_list = blame_list if blame_list else []
    return data_point