| # Copyright 2022 The ChromiumOS Authors |
| # 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 Filter |
| |
| DEPS = [ |
| "crosvm", |
| "recipe_engine/raw_io", |
| "recipe_engine/buildbucket", |
| "recipe_engine/context", |
| "recipe_engine/properties", |
| "recipe_engine/step", |
| ] |
| |
| |
| def RunSteps(api): |
| with api.crosvm.container_build_context(): |
| api.step( |
| "Self-test dev-container", |
| [ |
| "vpython3", |
| api.crosvm.source_dir / "tools/dev_container", |
| "--verbose", |
| "--self-test", |
| ], |
| ) |
| result = api.step( |
| "List checks to run", |
| [ |
| "vpython3", |
| api.crosvm.source_dir / "tools/presubmit", |
| "--list-checks", |
| "health_checks", |
| ], |
| stdout=api.raw_io.output_text(), |
| ) |
| check_list = result.stdout.strip().split("\n") |
| for check in check_list: |
| api.crosvm.step_in_container( |
| "tools/presubmit %s" % check, ["tools/presubmit", "--no-delta", check] |
| ) |
| |
| |
| def GenTests(api): |
| yield ( |
| api.test( |
| "basic", |
| api.buildbucket.ci_build(project="crosvm/crosvm"), |
| # Provide a fake response to --list-checks |
| api.step_data( |
| "List checks to run", |
| stdout=api.raw_io.output_text("check_a\ncheck_b"), |
| ), |
| ) |
| + api.post_process(Filter("List checks to run").include_re(r"tools/presubmit .*")) |
| ) |