You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
# Copyright 2017 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
DEPS = [
|
|
'bot_update',
|
|
'gclient',
|
|
'recipe_engine/context',
|
|
'recipe_engine/file',
|
|
'recipe_engine/path',
|
|
'recipe_engine/python',
|
|
'recipe_engine/step',
|
|
]
|
|
|
|
|
|
def RunSteps(api):
|
|
# Create a test depot_tools checkout, possibly applying user patches.
|
|
api.gclient.set_config('depot_tools')
|
|
api.bot_update.ensure_checkout()
|
|
|
|
# List fetch configs available in the test depot_tools checkout.
|
|
fetch_configs = set(
|
|
api.path.basename(f)[:-3] for f in api.file.listdir(
|
|
'listdir fetch_configs', api.path['checkout'].join('fetch_configs'))
|
|
if str(f).endswith('.py'))
|
|
|
|
# config_util is a helper library, not a config.
|
|
fetch_configs.discard('config_util')
|
|
|
|
# Try to run "fetch" for each of the configs. It's important to use
|
|
# the checkout under test.
|
|
with api.context(
|
|
env={'DEPOT_TOOLS_UPDATE': '0', 'CHROME_HEADLESS': '1'},
|
|
env_prefixes={'PATH': [api.path['checkout']]}):
|
|
with api.step.defer_results():
|
|
for config_name in sorted(fetch_configs):
|
|
# Create a dedicated temp directory. We want to test checking out
|
|
# from scratch.
|
|
temp_dir = api.path.mkdtemp('fetch_end_to_end_test_%s' % config_name)
|
|
|
|
try:
|
|
with api.context(cwd=temp_dir):
|
|
api.python(
|
|
'fetch %s' % config_name,
|
|
api.path['checkout'].join('fetch.py'),
|
|
[config_name])
|
|
finally:
|
|
api.file.rmtree('cleanup', temp_dir)
|
|
|
|
|
|
def GenTests(api):
|
|
yield (
|
|
api.test('basic') +
|
|
api.step_data('listdir fetch_configs', api.file.listdir(
|
|
['depot_tools.py', 'infra.py']))
|
|
)
|