Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: scripts/slave/recipe_modules/chromium_tests/api.py

Issue 2146873002: ios: drop dependency on chromium_tests; move analyze to filter module (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/filter/api.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import contextlib 5 import contextlib
6 import copy 6 import copy
7 import itertools 7 import itertools
8 import json 8 import json
9 9
10 from recipe_engine.types import freeze 10 from recipe_engine.types import freeze
11 from recipe_engine import recipe_api 11 from recipe_engine import recipe_api
12 from recipe_engine import util as recipe_util
13 12
14 from . import bot_config_and_test_db as bdb_module 13 from . import bot_config_and_test_db as bdb_module
15 from . import builders 14 from . import builders
16 from . import steps 15 from . import steps
17 from . import trybots 16 from . import trybots
18 17
19 18
20 # Paths which affect recipe config and behavior in a way that survives 19 # Paths which affect recipe config and behavior in a way that survives
21 # deapplying user's patch. 20 # deapplying user's patch.
22 RECIPE_CONFIG_PATHS = [ 21 RECIPE_CONFIG_PATHS = [
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 patch_root = self.m.gclient.calculate_patch_root( 655 patch_root = self.m.gclient.calculate_patch_root(
657 self.m.properties.get('patch_project')) 656 self.m.properties.get('patch_project'))
658 cwd = self._working_dir.join(patch_root) if self._working_dir else None 657 cwd = self._working_dir.join(patch_root) if self._working_dir else None
659 files = self.m.tryserver.get_files_affected_by_patch(patch_root, cwd=cwd) 658 files = self.m.tryserver.get_files_affected_by_patch(patch_root, cwd=cwd)
660 for i, path in enumerate(files): 659 for i, path in enumerate(files):
661 path = str(path) 660 path = str(path)
662 assert path.startswith(relative_to) 661 assert path.startswith(relative_to)
663 files[i] = path[len(relative_to):] 662 files[i] = path[len(relative_to):]
664 return files 663 return files
665 664
666 def analyze(self, affected_files, test_targets, additional_compile_targets,
667 config_file_name, mb_mastername=None, mb_buildername=None,
668 additional_names=None):
669 """Runs "analyze" step to determine targets affected by the patch.
670
671 Returns a tuple of:
672 - list of targets that are needed to run tests (see filter recipe module)
673 - list of targets that need to be compiled (see filter recipe module)"""
674
675 if additional_names is None:
676 additional_names = ['chromium']
677
678 use_mb = (self.m.chromium.c.project_generator.tool == 'mb')
679 build_output_dir = '//out/%s' % self.m.chromium.c.build_config_fs
680 self.m.filter.does_patch_require_compile(
681 affected_files,
682 test_targets=test_targets,
683 additional_compile_targets=additional_compile_targets,
684 additional_names=additional_names,
685 config_file_name=config_file_name,
686 use_mb=use_mb,
687 mb_mastername=mb_mastername,
688 mb_buildername=mb_buildername,
689 build_output_dir=build_output_dir,
690 cros_board=self.m.chromium.c.TARGET_CROS_BOARD)
691
692 compile_targets = self.m.filter.compile_targets[:]
693
694 # Emit more detailed output useful for debugging.
695 analyze_details = {
696 'test_targets': test_targets,
697 'additional_compile_targets': additional_compile_targets,
698 'self.m.filter.compile_targets': self.m.filter.compile_targets,
699 'self.m.filter.test_targets': self.m.filter.test_targets,
700 'compile_targets': compile_targets,
701 }
702 with contextlib.closing(recipe_util.StringListIO()) as listio:
703 json.dump(analyze_details, listio, indent=2, sort_keys=True)
704 step_result = self.m.step.active_result
705 step_result.presentation.logs['analyze_details'] = listio.lines
706
707 return self.m.filter.test_targets, compile_targets
708
709 # TODO(phajdan.jr): fix callers and remove chromium_tests.configure_swarming. 665 # TODO(phajdan.jr): fix callers and remove chromium_tests.configure_swarming.
710 def configure_swarming(self, project_name, precommit, mastername=None): 666 def configure_swarming(self, project_name, precommit, mastername=None):
711 return self.m.chromium_swarming.configure_swarming( # pragma: no cover 667 return self.m.chromium_swarming.configure_swarming( # pragma: no cover
712 project_name, precommit, mastername) 668 project_name, precommit, mastername)
713 669
714 def _build_gs_archive_url(self, mastername, master_config, buildername): 670 def _build_gs_archive_url(self, mastername, master_config, buildername):
715 """Returns the archive URL to pass to self.m.archive.zip_and_upload_build. 671 """Returns the archive URL to pass to self.m.archive.zip_and_upload_build.
716 672
717 Most builders on most masters use a standard format for the build archive 673 Most builders on most masters use a standard format for the build archive
718 URL, but some builders on some masters may specify custom places to upload 674 URL, but some builders on some masters may specify custom places to upload
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 def get_compile_targets_for_scripts(self): 734 def get_compile_targets_for_scripts(self):
779 return self.m.python( 735 return self.m.python(
780 name='get compile targets for scripts', 736 name='get compile targets for scripts',
781 script=self.m.path['checkout'].join( 737 script=self.m.path['checkout'].join(
782 'testing', 'scripts', 'get_compile_targets.py'), 738 'testing', 'scripts', 'get_compile_targets.py'),
783 args=[ 739 args=[
784 '--output', self.m.json.output(), 740 '--output', self.m.json.output(),
785 '--', 741 '--',
786 ] + self.get_common_args_for_scripts(), 742 ] + self.get_common_args_for_scripts(),
787 step_test_data=lambda: self.m.json.test_api.output({})) 743 step_test_data=lambda: self.m.json.test_api.output({}))
OLDNEW
« no previous file with comments | « no previous file | scripts/slave/recipe_modules/filter/api.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698