Example #1
0
 def testEvaluateFailedDependency(self, *_):
     self.PopulateTaskGraph(benchmark='some_benchmark',
                            chart='chart',
                            trace='must_not_be_found',
                            mode='graph_json')
     self.assertNotEqual(
         {},
         task_module.Evaluate(
             self.job,
             event_module.Event(type='initiate',
                                target_task=None,
                                payload={}),
             evaluators.SequenceEvaluator(evaluators=(
                 evaluators.FilteringEvaluator(
                     predicate=evaluators.TaskTypeEq('find_isolate'),
                     delegate=evaluators.SequenceEvaluator(evaluators=(
                         functools.partial(FakeFoundIsolate, self.job),
                         evaluators.TaskPayloadLiftingEvaluator()))),
                 evaluators.FilteringEvaluator(
                     predicate=evaluators.TaskTypeEq('run_test'),
                     delegate=evaluators.SequenceEvaluator(evaluators=(
                         functools.partial(FakeFailedRunTest, self.job),
                         evaluators.TaskPayloadLiftingEvaluator()))),
                 read_value.Evaluator(self.job),
             ))))
     self.assertEqual(
         {
             'read_value_chromium@aaaaaaa_%s' % (attempt, ): {
                 'benchmark':
                 'some_benchmark',
                 'mode':
                 'graph_json',
                 'results_filename':
                 'some_benchmark/perf_results.json',
                 'histogram_options': {
                     'tir_label': None,
                     'story': None,
                     'statistic': None,
                 },
                 'graph_json_options': {
                     'chart': 'chart',
                     'trace': 'must_not_be_found',
                 },
                 'errors': [{
                     'reason': 'DependencyFailed',
                     'message': mock.ANY,
                 }],
                 'status':
                 'failed',
                 'tries':
                 1,
             }
             for attempt in range(10)
         },
         task_module.Evaluate(
             self.job,
             event_module.Event(type='select', target_task=None,
                                payload={}),
             evaluators.Selector(task_type='read_value')))
Example #2
0
    def __init__(self, job):
        # We gather all the evaluators from the modules we know.
        super(ExecutionEngine, self).__init__(evaluators=[
            evaluators.DispatchByTaskType(
                {
                    'find_isolate': find_isolate.Evaluator(job),
                    'find_culprit': performance_bisection.Evaluator(job),
                    'read_value': read_value.Evaluator(job),
                    'run_test': run_test.Evaluator(job),
                }),

            # We then always lift the task payload up, skipping some of the
            # larger objects that we know we are not going to need when deciding
            # what the end result is.
            evaluators.TaskPayloadLiftingEvaluator(
                exclude_keys=EXCLUDED_PAYLOAD_KEYS)
        ])
Example #3
0
 def setUp(self):
     super(EvaluatorTest, self).setUp()
     self.maxDiff = None
     self.job = job_module.Job.New((), ())
     # Set up a common evaluator for all the test cases.
     self.evaluator = evaluators.SequenceEvaluator(evaluators=(
         evaluators.FilteringEvaluator(
             predicate=evaluators.TaskTypeEq('find_isolate'),
             delegate=evaluators.SequenceEvaluator(
                 evaluators=(bisection_test_util.FakeFoundIsolate(self.job),
                             evaluators.TaskPayloadLiftingEvaluator()))),
         evaluators.FilteringEvaluator(
             predicate=evaluators.TaskTypeEq('run_test'),
             delegate=evaluators.SequenceEvaluator(evaluators=(
                 bisection_test_util.FakeSuccessfulRunTest(self.job),
                 evaluators.TaskPayloadLiftingEvaluator()))),
         read_value.Evaluator(self.job),
     ))