blob: 047a641f0407616499e6ab4a84efd16e30d12bef [file] [log] [blame]
# 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.
from recipe_engine import post_process
from recipe_engine import recipe_api
DEPS = [
'gclient',
'recipe_engine/buildbucket',
'recipe_engine/properties',
]
PROPERTIES = {
'patch_project': recipe_api.Property(None),
'patch_repository_url': recipe_api.Property(None),
}
def RunSteps(api, patch_project, patch_repository_url):
src_cfg = api.gclient.make_config(CACHE_DIR='[ROOT]/git_cache')
soln = src_cfg.solutions.add()
soln.name = 'src'
soln.url = 'https://chromium.googlesource.com/chromium/src.git'
src_cfg.repo_path_map.update({
'https://chromium.googlesource.com/src': ('src', 'HEAD'),
'https://chromium.googlesource.com/v8/v8': ('src/v8', 'HEAD'),
# non-canonical URL
'https://webrtc.googlesource.com/src.git': (
'src/third_party/webrtc', 'HEAD'),
})
assert api.gclient.get_repo_path(
'https://chromium.googlesource.com/chromium/src.git',
gclient_config=src_cfg) == 'src'
assert api.gclient.get_repo_path(
'https://chromium.googlesource.com/chromium/src',
gclient_config=src_cfg) == 'src'
assert api.gclient.get_repo_path(
'https://chromium.googlesource.com/v8/v8',
gclient_config=src_cfg) == 'src/v8'
assert api.gclient.get_repo_path(
'https://webrtc.googlesource.com/src',
gclient_config=src_cfg) == 'src/third_party/webrtc'
assert api.gclient.get_repo_path(
'https://example.googlesource.com/unrecognized',
gclient_config=src_cfg) is None
api.gclient.c = src_cfg
patch_root = api.gclient.get_gerrit_patch_root(gclient_config=src_cfg)
assert patch_root == api.properties['expected_patch_root'], patch_root
api.gclient.set_patch_repo_revision()
def GenTests(api):
yield (
api.test('chromium_ci') +
api.buildbucket.ci_build(
project='chromium',
builder='linux',
git_repo='https://chromium.googlesource.com/src') +
api.properties(
expected_patch_root=None,
patch_project='chromium') +
api.post_process(post_process.DropExpectation)
)
yield (
api.test('chromium_try') +
api.buildbucket.try_build(
project='chromium',
builder='linux',
git_repo='https://chromium.googlesource.com/src') +
api.properties(
expected_patch_root='src',
patch_project='chromium') +
api.post_process(post_process.DropExpectation)
)
yield (
api.test('v8_try') +
api.buildbucket.try_build(
project='chromium',
builder='linux',
git_repo='https://chromium.googlesource.com/v8/v8') +
api.properties(
expected_patch_root='src/v8',
patch_project='v8') +
api.post_process(post_process.DropExpectation)
)
yield (
api.test('webrtc_try') +
api.buildbucket.try_build(
project='chromium',
builder='linux',
git_repo='https://webrtc.googlesource.com/src') +
api.properties(
expected_patch_root='src/third_party/webrtc',
patch_project='webrtc') +
api.post_process(post_process.DropExpectation)
)