1*bb4ee6a4SAndroid Build Coastguard Worker# Copyright 2022 The ChromiumOS Authors 2*bb4ee6a4SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*bb4ee6a4SAndroid Build Coastguard Worker# found in the LICENSE file. 4*bb4ee6a4SAndroid Build Coastguard Worker 5*bb4ee6a4SAndroid Build Coastguard Workerfrom recipe_engine.post_process import Filter 6*bb4ee6a4SAndroid Build Coastguard Worker 7*bb4ee6a4SAndroid Build Coastguard WorkerDEPS = [ 8*bb4ee6a4SAndroid Build Coastguard Worker "crosvm", 9*bb4ee6a4SAndroid Build Coastguard Worker "recipe_engine/raw_io", 10*bb4ee6a4SAndroid Build Coastguard Worker "recipe_engine/buildbucket", 11*bb4ee6a4SAndroid Build Coastguard Worker "recipe_engine/context", 12*bb4ee6a4SAndroid Build Coastguard Worker "recipe_engine/properties", 13*bb4ee6a4SAndroid Build Coastguard Worker "recipe_engine/step", 14*bb4ee6a4SAndroid Build Coastguard Worker] 15*bb4ee6a4SAndroid Build Coastguard Worker 16*bb4ee6a4SAndroid Build Coastguard Worker 17*bb4ee6a4SAndroid Build Coastguard Workerdef RunSteps(api): 18*bb4ee6a4SAndroid Build Coastguard Worker with api.crosvm.container_build_context(): 19*bb4ee6a4SAndroid Build Coastguard Worker api.step( 20*bb4ee6a4SAndroid Build Coastguard Worker "Self-test dev-container", 21*bb4ee6a4SAndroid Build Coastguard Worker [ 22*bb4ee6a4SAndroid Build Coastguard Worker "vpython3", 23*bb4ee6a4SAndroid Build Coastguard Worker api.crosvm.source_dir / "tools/dev_container", 24*bb4ee6a4SAndroid Build Coastguard Worker "--verbose", 25*bb4ee6a4SAndroid Build Coastguard Worker "--self-test", 26*bb4ee6a4SAndroid Build Coastguard Worker ], 27*bb4ee6a4SAndroid Build Coastguard Worker ) 28*bb4ee6a4SAndroid Build Coastguard Worker result = api.step( 29*bb4ee6a4SAndroid Build Coastguard Worker "List checks to run", 30*bb4ee6a4SAndroid Build Coastguard Worker [ 31*bb4ee6a4SAndroid Build Coastguard Worker "vpython3", 32*bb4ee6a4SAndroid Build Coastguard Worker api.crosvm.source_dir / "tools/presubmit", 33*bb4ee6a4SAndroid Build Coastguard Worker "--list-checks", 34*bb4ee6a4SAndroid Build Coastguard Worker "health_checks", 35*bb4ee6a4SAndroid Build Coastguard Worker ], 36*bb4ee6a4SAndroid Build Coastguard Worker stdout=api.raw_io.output_text(), 37*bb4ee6a4SAndroid Build Coastguard Worker ) 38*bb4ee6a4SAndroid Build Coastguard Worker check_list = result.stdout.strip().split("\n") 39*bb4ee6a4SAndroid Build Coastguard Worker for check in check_list: 40*bb4ee6a4SAndroid Build Coastguard Worker api.crosvm.step_in_container( 41*bb4ee6a4SAndroid Build Coastguard Worker "tools/presubmit %s" % check, ["tools/presubmit", "--no-delta", check] 42*bb4ee6a4SAndroid Build Coastguard Worker ) 43*bb4ee6a4SAndroid Build Coastguard Worker 44*bb4ee6a4SAndroid Build Coastguard Worker 45*bb4ee6a4SAndroid Build Coastguard Workerdef GenTests(api): 46*bb4ee6a4SAndroid Build Coastguard Worker yield ( 47*bb4ee6a4SAndroid Build Coastguard Worker api.test( 48*bb4ee6a4SAndroid Build Coastguard Worker "basic", 49*bb4ee6a4SAndroid Build Coastguard Worker api.buildbucket.ci_build(project="crosvm/crosvm"), 50*bb4ee6a4SAndroid Build Coastguard Worker # Provide a fake response to --list-checks 51*bb4ee6a4SAndroid Build Coastguard Worker api.step_data( 52*bb4ee6a4SAndroid Build Coastguard Worker "List checks to run", 53*bb4ee6a4SAndroid Build Coastguard Worker stdout=api.raw_io.output_text("check_a\ncheck_b"), 54*bb4ee6a4SAndroid Build Coastguard Worker ), 55*bb4ee6a4SAndroid Build Coastguard Worker ) 56*bb4ee6a4SAndroid Build Coastguard Worker + api.post_process(Filter("List checks to run").include_re(r"tools/presubmit .*")) 57*bb4ee6a4SAndroid Build Coastguard Worker ) 58