| # Copyright 2014 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 = [ |
| 'chromium', |
| 'filter', |
| 'recipe_engine/json', |
| 'recipe_engine/path', |
| 'recipe_engine/platform', |
| 'recipe_engine/properties', |
| 'recipe_engine/raw_io', |
| 'recipe_engine/step', |
| ] |
| |
| def RunSteps(api): |
| test_targets = api.m.properties.get('test_targets') |
| additional_compile_targets = api.m.properties.get( |
| 'additional_compile_targets') |
| |
| api.path['checkout'] = api.path['start_dir'] |
| api.chromium.set_config('chromium') |
| api.chromium.ensure_goma() |
| api.filter.does_patch_require_compile( |
| affected_files=list(api.m.properties.get('affected_files', ['foo.cc'])), |
| test_targets=test_targets, |
| additional_compile_targets=additional_compile_targets, |
| additional_names=['chromium']) |
| |
| assert (list(api.properties.get('example_changed_paths', ['foo.cc'])) == \ |
| api.filter.paths) |
| assert (list(api.properties.get('example_test_targets', [])) == |
| list(api.filter.test_targets)) |
| assert (list(api.properties.get('example_compile_targets', [])) == |
| api.filter.compile_targets) |
| api.step('hello', ['echo', 'Why hello, there.']) |
| |
| def GenTests(api): |
| # Trivial test with no exclusions and nothing matching. |
| yield (api.test('basic') + |
| api.properties( |
| affected_files=['yy'], |
| filter_exclusions=[], |
| example_changed_paths=['yy']) + |
| api.override_step_data( |
| 'read filter exclusion spec', |
| api.json.output({ |
| 'base': { 'exclusions': [] }, |
| 'chromium': { 'exclusions': [] }}))) |
| |
| # Matches exclusions |
| yield (api.test('match_exclusion') + |
| api.properties(affected_files=['foo.cc']) + |
| api.override_step_data( |
| 'read filter exclusion spec', |
| api.json.output({ |
| 'base': { 'exclusions': ['fo.*'] }, |
| 'chromium': { 'exclusions': [] }}))) |
| |
| # Matches exclusions in additional_names key |
| yield (api.test('match_additional_name_exclusion') + |
| api.properties(affected_files=['foo.cc']) + |
| api.override_step_data( |
| 'read filter exclusion spec', |
| api.json.output({ |
| 'base': { 'exclusions': [] }, |
| 'chromium': { 'exclusions': ['fo.*'] }}))) |
| |
| # Doesnt match exclusion. |
| yield (api.test('doesnt_match_exclusion') + |
| api.properties( |
| affected_files=['bar.cc'], |
| example_changed_paths=['bar.cc']) + |
| api.override_step_data( |
| 'read filter exclusion spec', |
| api.json.output({ |
| 'base': { 'exclusions': ['fo.*'] }, |
| 'chromium': { 'exclusions': [] }}))) |
| |
| # Matches ignore. |
| yield (api.test('match_ignore') + |
| api.properties( |
| affected_files=['OWNERS'], |
| example_changed_paths=['OWNERS']) + |
| api.override_step_data( |
| 'read filter exclusion spec', |
| api.json.output({ |
| 'base': { 'ignores': ['OWNERS'] }, |
| 'chromium': { }}))) |
| |
| # Analyze returns matching result. |
| yield (api.test('analyzes_returns_true') + |
| api.override_step_data( |
| 'analyze', |
| api.json.output({'status': 'Found dependency', |
| 'test_targets': [], |
| 'compile_targets': []}))) |
| |
| # Analyze returns matching tests while matching all. |
| yield (api.test('analyzes_matches_all_exes') + |
| api.override_step_data( |
| 'analyze', |
| api.json.output({'status': 'Found dependency (all)', |
| 'test_targets': [], |
| 'compile_targets': []}))) |
| |
| # Analyze matches all and returns matching tests. |
| yield (api.test('analyzes_matches_test_targets') + |
| api.properties( |
| test_targets=['foo', 'bar'], |
| example_test_targets=['foo', 'bar'], |
| example_compile_targets=['bar', 'foo']) + |
| api.override_step_data( |
| 'analyze', |
| api.json.output({'status': 'Found dependency', |
| 'test_targets': ['foo', 'bar'], |
| 'compile_targets': ['foo', 'bar']}))) |
| |
| # Analyze matches all and returns matching tests. |
| yield (api.test('analyzes_matches_compile_targets') + |
| api.properties( |
| example_test_targets=['foo'], |
| example_compile_targets=['bar', 'foo']) + |
| api.override_step_data( |
| 'analyze', |
| api.json.output({'status': 'Found dependency', |
| 'test_targets': ['foo'], |
| 'compile_targets': ['bar']}))) |
| |
| # Analyze with error condition. |
| yield (api.test('analyzes_error') + |
| api.properties( |
| test_targets=[]) + |
| api.override_step_data( |
| 'analyze', |
| api.json.output({'error': 'ERROR'}))) |
| |
| # Analyze with python returning bad status. |
| yield (api.test('bad_retcode_fails') + |
| api.properties( |
| test_targets=[]) + |
| api.step_data( |
| 'analyze', |
| retcode=-1)) |
| |
| # invalid_targets creates a failure. |
| yield (api.test('invalid_targets') + |
| api.properties( |
| test_targets=[], |
| example_result=1) + |
| api.override_step_data( |
| 'analyze', |
| api.json.output({'invalid_targets': ['invalid', 'another one']}))) |