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

Unified Diff: scripts/slave/recipe_modules/filter/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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « scripts/slave/recipe_modules/chromium_tests/api.py ('k') | scripts/slave/recipe_modules/ios/__init__.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scripts/slave/recipe_modules/filter/api.py
diff --git a/scripts/slave/recipe_modules/filter/api.py b/scripts/slave/recipe_modules/filter/api.py
index e81fc48be37c6ff5921795bb71bce776a068db51..29cfd475cc8df5f38e83049e6cc6ed34dd614715 100644
--- a/scripts/slave/recipe_modules/filter/api.py
+++ b/scripts/slave/recipe_modules/filter/api.py
@@ -2,10 +2,13 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import contextlib
+import json
import os
import re
from recipe_engine import recipe_api
+from recipe_engine import util as recipe_util
class FilterApi(recipe_api.RecipeApi):
def __init__(self, **kwargs):
@@ -236,3 +239,47 @@ class FilterApi(recipe_api.RecipeApi):
self._test_targets))
else:
step_result.presentation.step_text = 'No compile necessary'
+
+ # TODO(phajdan.jr): Merge with does_patch_require_compile.
+ def analyze(self, affected_files, test_targets, additional_compile_targets,
+ config_file_name, mb_mastername=None, mb_buildername=None,
+ additional_names=None):
+ """Runs "analyze" step to determine targets affected by the patch.
+
+ Returns a tuple of:
+ - list of targets that are needed to run tests (see filter recipe module)
+ - list of targets that need to be compiled (see filter recipe module)"""
+
+ if additional_names is None:
+ additional_names = ['chromium']
+
+ use_mb = (self.m.chromium.c.project_generator.tool == 'mb')
+ build_output_dir = '//out/%s' % self.m.chromium.c.build_config_fs
+ self.does_patch_require_compile(
+ affected_files,
+ test_targets=test_targets,
+ additional_compile_targets=additional_compile_targets,
+ additional_names=additional_names,
+ config_file_name=config_file_name,
+ use_mb=use_mb,
+ mb_mastername=mb_mastername,
+ mb_buildername=mb_buildername,
+ build_output_dir=build_output_dir,
+ cros_board=self.m.chromium.c.TARGET_CROS_BOARD)
+
+ compile_targets = self.compile_targets[:]
+
+ # Emit more detailed output useful for debugging.
+ analyze_details = {
+ 'test_targets': test_targets,
+ 'additional_compile_targets': additional_compile_targets,
+ 'self.m.filter.compile_targets': self.compile_targets,
+ 'self.m.filter.test_targets': self.test_targets,
+ 'compile_targets': compile_targets,
+ }
+ with contextlib.closing(recipe_util.StringListIO()) as listio:
+ json.dump(analyze_details, listio, indent=2, sort_keys=True)
+ step_result = self.m.step.active_result
+ step_result.presentation.logs['analyze_details'] = listio.lines
+
+ return self.test_targets, compile_targets
« no previous file with comments | « scripts/slave/recipe_modules/chromium_tests/api.py ('k') | scripts/slave/recipe_modules/ios/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698