Index: scripts/slave/recipe_modules/chromium_tests/api.py |
diff --git a/scripts/slave/recipe_modules/chromium_tests/api.py b/scripts/slave/recipe_modules/chromium_tests/api.py |
index d8134af777664f109a751d654f4774dd94b8e7cb..c3959f6ef8064522da889eb2dd4b5140f7091366 100644 |
--- a/scripts/slave/recipe_modules/chromium_tests/api.py |
+++ b/scripts/slave/recipe_modules/chromium_tests/api.py |
@@ -30,10 +30,6 @@ class ChromiumTestsApi(recipe_api.RecipeApi): |
self.add_builders(builders.BUILDERS) |
self._precommit_mode = False |
- # Keep track of working directory (which contains the checkout). |
- # None means "default value". |
- self._working_dir = None |
- |
@property |
def builders(self): |
return self._builders |
@@ -130,40 +126,15 @@ class ChromiumTestsApi(recipe_api.RecipeApi): |
dep = bot_config.get('set_component_rev') |
self.m.gclient.c.revisions[dep['name']] = dep['rev_str'] % component_rev |
- def get_checkout_dir(self, bot_config): |
- try: |
- builder_cache = self.m.path['builder_cache'] |
- except KeyError: # no-op if builder cache is not set up. |
- return None |
- else: |
- sanitized_buildername = ''.join( |
- c if c.isalnum() else '_' for c in self.m.properties['buildername']) |
- checkout_dir = builder_cache.join( |
- bot_config.get('checkout_dir', sanitized_buildername)) |
- self.m.shutil.makedirs('checkout path', checkout_dir) |
- return checkout_dir |
+ # TODO(phajdan.jr): fix callers and remove chromium_tests.get_checkout_dir. |
+ def get_checkout_dir(self, bot_config): # pragma: no cover |
+ return self.m.chromium_checkout.get_checkout_dir(bot_config) |
+ # TODO(phajdan.jr): fix callers and remove chromium_tests.ensure_checkout. |
def ensure_checkout(self, bot_config, root_solution_revision=None, |
force=False): |
- if self.m.platform.is_win: |
- self.m.chromium.taskkill() |
- |
- kwargs = {} |
- self._working_dir = self.get_checkout_dir(bot_config) |
- if self._working_dir: |
- kwargs['cwd'] = self._working_dir |
- |
- # Bot Update re-uses the gclient configs. |
- update_step = self.m.bot_update.ensure_checkout( |
- patch_root=bot_config.get('patch_root'), |
- root_solution_revision=root_solution_revision, |
- clobber=bot_config.get('clobber', False), |
- force=force, **kwargs) |
- assert update_step.json.output['did_run'] |
- # HACK(dnj): Remove after 'crbug.com/398105' has landed |
- self.m.chromium.set_build_properties(update_step.json.output['properties']) |
- |
- return update_step |
+ return self.m.chromium_checkout.ensure_checkout( # pragma: no cover |
+ bot_config, root_solution_revision, force) |
def set_up_swarming(self, bot_config): |
if not bot_config.get('enable_swarming'): |
@@ -194,7 +165,7 @@ class ChromiumTestsApi(recipe_api.RecipeApi): |
def prepare_checkout(self, bot_config, root_solution_revision=None, |
force=False): |
- update_step = self.ensure_checkout( |
+ update_step = self.m.chromium_checkout.ensure_checkout( |
bot_config, root_solution_revision, force=force) |
if (self.m.chromium.c.compile_py.compiler and |
@@ -544,7 +515,7 @@ class ChromiumTestsApi(recipe_api.RecipeApi): |
@contextlib.contextmanager |
def wrap_chromium_tests(self, bot_config, tests=None): |
context = { |
- 'cwd': self._working_dir, |
+ 'cwd': self.m.chromium_checkout.working_dir, |
'env': self.m.chromium.get_env(), |
} |
with self.m.step.context(context): |
@@ -646,8 +617,8 @@ class ChromiumTestsApi(recipe_api.RecipeApi): |
self._resolve_fixed_revisions(bot_update_json) |
kwargs = {} |
- if self._working_dir: |
- kwargs['cwd'] = self._working_dir |
+ if self.m.chromium_checkout.working_dir: |
+ kwargs['cwd'] = self.m.chromium_checkout.working_dir |
self.m.bot_update.ensure_checkout( |
force=True, patch=False, update_presentation=False, **kwargs) |
@@ -694,21 +665,10 @@ class ChromiumTestsApi(recipe_api.RecipeApi): |
'TESTS FAILED; retries without patch disabled (%s)' |
% deapply_patch_reason) |
+ # TODO(phajdan.jr): fix callers and remove get_files_affected_by_patch. |
def get_files_affected_by_patch(self, relative_to='src/', cwd=None): |
- """Returns list of POSIX paths of files affected by patch for "analyze". |
- |
- Paths are relative to `relative_to` which for analyze should be 'src/'. |
- """ |
- patch_root = self.m.gclient.calculate_patch_root( |
- self.m.properties.get('patch_project')) |
- if not cwd: |
- cwd = self._working_dir.join(patch_root) if self._working_dir else None |
- files = self.m.tryserver.get_files_affected_by_patch(patch_root, cwd=cwd) |
- for i, path in enumerate(files): |
- path = str(path) |
- assert path.startswith(relative_to) |
- files[i] = path[len(relative_to):] |
- return files |
+ return self.m.chromium_checkout.get_files_affected_by_patch( # pragma: no cover |
+ relative_to, cwd) |
# TODO(phajdan.jr): fix callers and remove chromium_tests.configure_swarming. |
def configure_swarming(self, project_name, precommit, mastername=None): |