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.
106 lines
3.2 KiB
Python
106 lines
3.2 KiB
Python
# Copyright 2020 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.post_process import (DropExpectation, StatusSuccess,
|
|
SummaryMarkdown)
|
|
|
|
PYTHON_VERSION_COMPATIBILITY = 'PY2+3'
|
|
|
|
DEPS = [
|
|
'recipe_engine/assertions',
|
|
'recipe_engine/buildbucket',
|
|
'recipe_engine/path',
|
|
'recipe_engine/platform',
|
|
'recipe_engine/properties',
|
|
'recipe_engine/raw_io',
|
|
|
|
'gclient',
|
|
]
|
|
|
|
def RunSteps(api):
|
|
src_cfg = api.gclient.make_config(CACHE_DIR=api.path['cache'].join('git'))
|
|
|
|
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'),
|
|
})
|
|
|
|
api.gclient.c = src_cfg
|
|
affected_files = api.gclient.diff_deps(api.path['cache'])
|
|
|
|
api.assertions.assertEqual(
|
|
affected_files,
|
|
list(api.properties.get('diff_deps_files')),
|
|
)
|
|
|
|
def GenTests(api):
|
|
test_files = (
|
|
'third_party/mockfile1',
|
|
'third_party/mockfile2'
|
|
)
|
|
no_test_files = []
|
|
|
|
yield api.test(
|
|
'basic',
|
|
api.buildbucket.try_build(),
|
|
api.properties(diff_deps_files=test_files),
|
|
api.override_step_data(
|
|
'gclient recursively git diff all DEPS',
|
|
api.gclient.diff_deps_test_data(test_files),
|
|
),
|
|
api.post_process(StatusSuccess),
|
|
api.post_process(DropExpectation),
|
|
)
|
|
|
|
yield api.test(
|
|
'no change, exception',
|
|
api.buildbucket.try_build(),
|
|
api.properties(diff_deps_files=no_test_files),
|
|
api.override_step_data(
|
|
'gclient recursively git diff all DEPS',
|
|
api.gclient.diff_deps_test_data(no_test_files),
|
|
),
|
|
api.expect_exception('DepsDiffException'),
|
|
api.post_process(
|
|
SummaryMarkdown,
|
|
"Uncaught Exception: DepsDiffException('Unexpected result: autoroll "
|
|
"diff found 0 files changed')"),
|
|
api.post_process(DropExpectation),
|
|
status="INFRA_FAILURE")
|
|
|
|
yield api.test(
|
|
'dont have revision yet',
|
|
api.buildbucket.try_build(),
|
|
api.properties(diff_deps_files=test_files),
|
|
api.override_step_data(
|
|
'gclient recursively git diff all DEPS',
|
|
api.raw_io.stream_output_text('fatal: bad object abcdef1234567890'),
|
|
),
|
|
api.expect_exception('DepsDiffException'),
|
|
api.post_process(
|
|
SummaryMarkdown,
|
|
"Uncaught Exception: DepsDiffException('Couldn't checkout previous "
|
|
"ref: fatal: bad object abcdef1234567890')"),
|
|
api.post_process(DropExpectation),
|
|
status="INFRA_FAILURE")
|
|
|
|
yield api.test(
|
|
'windows',
|
|
api.buildbucket.try_build(),
|
|
api.properties(diff_deps_files=test_files),
|
|
api.platform.name('win'),
|
|
api.override_step_data(
|
|
'gclient recursively git diff all DEPS',
|
|
api.gclient.diff_deps_test_data(test_files),
|
|
),
|
|
api.post_process(StatusSuccess),
|
|
api.post_process(DropExpectation),
|
|
)
|